2
Pythonにはまったく新しいですが、Scrabble anagramソルバを作成しようとしています。テキストファイルを作成し、ユーザーに7文字のラックを与えてアナグラムを確認します。私はis_anagram
関数に取り組んでいて、sorted()
を使用してアルファベット順に単語の文字のリストを作成し、次にif
ステートメントを使用して、辞書からソートされた単語がソートされた文字のラックと等しいかどうかを確認します。検索されている文字は長いリストから来るので、リストには"\n"
という単語が作成されます。私はそれを比較する前にリストから'\n'
を削除するように反復を設定しようとしていますが、なんらかの理由でリストをマイナス'\n'
の代わりにNone
として返しています。理由は分かりません。誰でも助けることができますか?コードは次のとおりです。リストを反復処理して( ' n')リストを削除しようとすると、リストの要素の代わりにNoneが返される
def is_anagram(word):
scrabble_dict = open('sowpods.txt')
for x in scrabble_dict:
x = sorted(x)
x = x.remove('\n')
word = sorted(word)
if word == x:
print(word)
チェック:http://stackoverflow.com/questions/26766587/removing-item-from-list-causes-the-list-to-become-nonetype は基本的に削除はそのように動作しません。 'x = x.remove( '\ n')' x'remove( '\ n') 'だけで十分です。 – Fma
質問に答える!ありがとう! –
それを並べ替えた後に単語が印刷されません。また、プレーヤーが自分のラックにある文字を 'word'ではなく、' x'が辞書の実際の単語ですか?私の理解が正しいならば、ソートする前に 'x'のコピーを保存したいのですが、一致するものがあれば、保存されたコピーをプリントして実際に単語を得るでしょうか?また、 'word x'の方が' word x'よりも小さい方が、 'word'よりも小さい辞書項目を確認できるので、より良い呼び出しになるかもしれません。 – dhdavvie