我有一個文本文件,這是一個很長的單詞列表,沒有空格,例如「神經心理神經科學神經科學神經病學神經科學史」等 我想建立一個程序,將採取一個輸入的單詞,並檢查該單詞的任何字典的.txt文件,然後將它們添加到字典中。從Python中的.txt文件中將字典添加到字典中?
我到目前爲止所提供的代碼打印出1個包含在words.txt中的1個字典的字典;
anagram_dict = {}
def anagram(word):
b = open('words.txt', 'r').readlines()
text = ''.join(line.strip() for line in b)
#print(len(text))
for i in range(len(text)-len(word)):
prop = text[i:i+len(word)]
if all(char in word for char in prop): #and all(prop.count(char) == prop.count(word) for char in prop):
anagram_dict[''.join(sorted(word))] = [prop]
print(anagram_dict)
anagram("demand")
的問題是,它打印的排列不是字謎(我輸入的「需求」期待「勁爆」來了,但它打印「amamad」,這是在文件中但不是一個字謎)如何如果排列是一個真正的anagram(剛剛重新排列的相同字母),我可以讓它只打印字典嗎?我想這個問題可能與「如果所有(在道具中字符的字符):#和所有(道具中的字符的prop.count(char)== prop.count(字)):」
特別是當它運行時註釋掉的部分只是打印一個空字符串。
道歉這麼長時間,我只是想確保我解釋我自己。謝謝你的幫助。
太感謝你了,現在打印所有排列在一個字典,但現在我試圖讓這個只補充說,到所述字典包含words.txt內排列。我認爲它可能只是「如果檢查文本/ B」,但它只是打印空字典的字典。 –
在單獨的列表中追加字母。然後在循環結束後,檢查該列表是否爲空。如果不是,您可以將該列表添加到您的字典中。 – jatinderjit