たとえば、次のように多くの単語を検索しようとしています。 'workbook' 結果はwork、workbook、bookwork、bookwork、bow、rowなどのようになります。注文が異なる場合でも文字列内の単語をチェックする方法 - PYTHON
これは私が試した1つの方法ですが、これは異なる順序で綴られた単語は見つかりません。 (例えば、それはあなたが「弓」を書くために「ワークブック」内の文字を並べ替えることができていても「弓」を追加しません)
f = open('/usr/share/dict/words', 'r')
test = "workbook"
anagramlist = []
for word in f:
if word[:-1] in test and len(word[:-1]) > 2:
anagramlist.append(word[:-1])
# this wont append 'bookwork', 'row' etc
print anagramlist #outputs ['boo', 'book', 'work', 'workbook']
私はこの問題にアプローチしようとしたもう一つの方法は、セットを使用することです..しかし、これは」doesnのトンの仕事完全にどちらかそれは例えばのために持っている単語を追加するため、1以上WOW 『や『wowwow』、私が唯一で文字と文字の数を使用することを望んでいても『ワークブック』
f = open('/usr/share/dict/words', 'r')
test = "workbook"
anagramlist = []
for word in f:
if len(word) > 2 and set(word[:-1]) == set(test) & set(word[:-1]):
anagramlist.append(word[:-1])
print anagramlist
「のようだW』
この出力はです。私はこの状態で何かを修正できることを望んでいる、あるいはこれはまったく間違ったアプローチです。
['bo', 'bob', 'bobo', 'boo', 'boob', 'boobook', 'book', 'bookwork', 'boor', 'bor', 'boro', 'borrow', 'bow', 'bowk', 'bowwow', 'brob', 'broo', 'brook', 'brow', 'ko', 'kob', 'koko', 'kor', 'or', 'orb', 'ow', 'owk', 'rob', 'rook', 'row', 'wo', 'wob', 'woo', 'work', 'workbook', 'wow', 'wro']
本当にありがとうございます。
私はあなたが別のアプローチを探しているので、それが今立っているとして、あなたの質問が広すぎると思います。ただし、いくつか試してみることもできます。まず、入力文字列を再配置するための['itertools.permutations'](https://docs.python.org/2/library/itertools.html#itertools.permutations)のようなものをチェックしてください。次に、それらをあなたの辞書と比較して(どちらかと言えば)、実際の単語 "HTH"を見つけてください。 –