我有几个字典文件,我希望这个代码打开每个文件并将其添加到一个集合中,以便以后进行比较和匹配。基本上,我有所有可能字符的所有排列的不同列表,我需要知道排列是否在字典中。但是,当我试图让一组与所有字典行我得到这个错误:字典更新顺序元素错误
choices = ['s','m','o','k','e','j','a','c','k']
def parsed(choices):
mySet = {}
for item in choices:
filename = self.location + "/dicts/%s.txt" % (item)
mySet.update(open(filename).read().splitlines())
return mySet
我得到这个错误
error: dictionary update sequence element #0 has length 4; 2 is required
此外,我想问如果有之间可能存在的比较方法两组数据(9个字符的排列和9个字典文件列表)在不到1分钟内运行。
据我所知,已经有关于这个错误的问题,但坦率地说,我是一个初学者,我不明白这些如何与我的代码,或如何解决它。
堆栈溢出问题应该包含一个问题 - 这是为了让他们对未来的读者更有用。但是关于你的“进一步”,在我的2GHz 32位机器上,我可以在大约1.5秒内对“216553”字的[Sowpods Scrabble dictionary](http://www.3zsoftware.com/download)测试“SMOKEJACK”的所有排列。 FWIW,除了“SMOKEJACK”本身之外,我没有发现任何昵称。 –
我明白了,现在我知道这是可能的。我已经重写了这段代码,并且会打开另一个问题来具体询问时间问题。非常感谢你。 – Notgivinit
提示:使用'itertools.permutations'生成排列,并且不要将它们存储在列表或集合中:只需在生成它们时对照您的单词集进行测试。如果从包含所有单词的单个文件中读取单词,而不是为每个首字母单独分配文件,则可能会更快地构建单词集。 –