0
時にサイズを変更:はRuntimeError:辞書はこれが私のコードで反復
import os
import collections
def make_dictionary(train_dir):
emails=[os.path.join(train_dir,f) for f in os.listdir(train_dir)]
all_words=[]
for mail in emails:
with open(mail) as m:
for i,line in enumerate(m):
if i==2: #Body of email is only 3rd line of text file
words=line.split()
all_words+=words
dictionary=collections.Counter(all_words)
# Paste code for non-word removal here(code snippet is given below)
list_to_remove=dictionary.keys()
for item in list_to_remove:
if item.isalpha()==False:
del dictionary[item]
elif len(item)==1:
del dictionary[item]
dictionary=dictionary.mostcommon[3000]
print (dictionary)
make_dictionary('G:\Engineering\Projects\Python\Documents\enron1\ham')
私はエラー「例外RuntimeErrorを:辞書には、反復処理中にサイズを変更し、」受け付けており、このコードを書くことに。私は ディレクトリ内のテキストファイルのみを持っています。どんな助けもありがとう。
'list_to_remove = dictionary.keys()'を 'list_to_remove = [k for dictionary for k] 'に変更すると' 'dict'に' keys'の 'list'を関連付ける* dict'は 'list'に反映されません –
ありがとうございます。できます。 @ Ev.Kounis –