0

そのため、.txt を取得し、dictionary.txt と比較して間違った単語を見つける spell_checker を完成させようとしています。結果は、間違っている.txtからの単語を出力する必要があります。

しかし、for ループを実行しようとすると、このエラーが発生し続けます。

TypeError: タイプ 'builtin_function_or_method' の引数は反復可能ではありません

ここに私のコードがあります:

def spell_check(wordlist):
    opening = open('words.txt').read(). lower(). strip(' ')
    text = []
    conv = set(opening)
    conv1 = set(wordlist)
    conv2 = conv1.add
    return [x for x in conv if x not in conv2]

編集: エラーを同じ順序で保持する必要があるため、conv2 が必要でした。セットで注文したくありません。誰かがこの問題を解決する方法について他の洞察を持っている場合。それは素晴らしいことです。

誰かがこれに光を当てることができれば、それは大歓迎です!

4

2 に答える 2

0

add問題は、メソッドを変数にバインドしていることですconv2。あなたが意図したのはこれだと思います:

def spell_check(wordlist):
    # change .strip(' ') to .split(' ') to get a list
    opening = open('words.txt').read().lower().split(' ')
    conv = set(opening)
    conv1 = set(wordlist)

    # I don't think you need conv2 at all, right?
    return [x for x in conv if x not in conv1]

wordlist渡される は辞書であり、「words.txt」はスペルチェックしているドキュメントであると想定しています。

于 2013-10-16T03:09:22.200 に答える