我有一个文本文件,这是一个很长的单词列表,没有空格,例如“神经心理神经科学神经科学神经病学神经科学史”等 我想建立一个程序,将采取一个输入的单词,并检查该单词的任何字典的.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