0

私は Python を使ったプログラミングの初心者で、簡単に答えられるかもしれない質問があります。

.txt ファイルからインポートされた単語の辞書があります。次に、プログラムが文を入力するように求め、入力したすべての単語を別のリストに保存します。

という名前のリストのすべての単語が という名前のリストにあるかどうかをチェックするプログラムを書かなければなりませsentence_listwords。その単語が辞書にない場合は、別のリストに入力する必要があります。このリストには、入力ミスまたは辞書にないすべての単語が含まれています。

理解を容易にするために、私のプログラムは次のように動作する必要があります。

Type your sentence:
My naeme is John, I lieve in Italy, which is beatiful country.
['naeme', 'lieve', 'beatiful']

これは私が今までできることです:

words = open("dictionary.txt", encoding="latin2").read().lower().split()

sentence=input("Type your sentence: ")

import re

sentence_list = re.findall("\w+", sentence.lower())

for で何かをしなければならないことはわかっていますが、for は、私がよく知っている Javascript と Python では異なります。

4

2 に答える 2

3

セットの使用

セットを使用して、辞書リストにないすべての単語を見つけることができます。

>>> set([1,2,3]).difference([2,3])
set([1])

これには重複は含まれないことに注意してください。

したがって、次のようになります (結果をリストにする必要がある場合)。

misspelled_word_list = list( set(sentence_list).difference(words) )

の使用

を使用する必要があるためfor、別の (効率の悪い) アプローチを次に示します。

misspelled_word_list = []
for word in sentence_list:
    if (not word in misspelled_word_list) and (not word in words):
        misspelled_word_list.append(word)

単語をループして、リストに含まsentence_listれているかどうかを確認するだけです。words

于 2012-10-20T15:30:06.733 に答える
1

これは、スペルミスの単語forを生成する ,を使用したワンライナーです。set

mispelled = { word for word in sentence if word not in dictionary }

わかりやすくするために変数の名前を変更しました

于 2012-10-20T16:59:26.350 に答える