에 단어 목록에 문자의 순서를 비교 (그래서 버튼의 내 순서가 여기에, 오래된 학교 문자 메시지를 생각 4266532)내가 특정 순서에있는 문자의 목록을 가지고 파이썬
letters = [['g', 'h', 'i'], ['a', 'b', 'c'], ['m', 'n', 'o'], ['m', 'n', 'o'], ['j', 'k', 'l'], ['d', 'e', 'f']]
나는이 단어 목록과 비교하여 문자의 순서에 대해 얼마나 많은 일치하는 문장을보고 싶은 단어
words = ['i', 'am', 'an', 'old', 'man']
의 목록을 표시합니다.
예를 들어 글자의 순서 또는 '내가 옛날'
편집은 '내가 늙었'동일 수 : 나는 순서에 의해 무엇을 의미하는지 명확히하기 위해 여전히 대신 터치 버튼이 기존 휴대폰에
화면. 각 단추 (또는 번호)에는 문자가 붙어 있습니다. 예를 들어 숫자/버튼 '2'에는 문자가 ['a','b','c']
첨부되어 있습니다. 숫자/버튼 '3'에는 문자 ['d,'e','f']
이 붙어 있습니다.
from collections import Counter
from itertools import combinations, chain
letters = [['g', 'h', 'i'], ['a', 'b', 'c'], ['m', 'n', 'o'],['m', 'n', 'o'], ['j', 'k', 'l'], ['d', 'e', 'f']]
allowed = set(chain.from_iterable(letters))
words = ['i', 'am', 'an', 'old', 'man']
for phrase in combinations(words, 3):
phrase_c = Counter(chain.from_iterable(phrase))
if any((v > 1 and k not in "mno") or k not in allowed for k, v in phrase_c.items()):
continue
print(phrase)
: 그래서 위에 내 letters
목록에 어떤 글자는 전체의 기준이 무엇인지 4266532
데이터를 매우 쉽게 무차별 적으로 만들 수 있습니까? 또한 시퀀스로 간주되는 논리를 지정하지 않았습니다. 노인이라고 생각하고 '나는 노인'이라도 '남자'라고 생각하는 것을 고려하십니까? –
그것은 대학 과제를위한 것입니다, 그래서 데이터는 제가 보여주고있는 것보다 훨씬 크지 않을 것입니다, 그들은 다른 단어 목록과 문자 순서에 대해 테스트 할 수 있습니다. 그러나 크기는 비슷할 것입니다. @PadraicCunningham – oneman
결과는 항상 순서에 맞습니까, 즉'단어'개체에서? – enderland