草庐IT

ThinkPython

全部标签

python - 如何优化这段 Python 代码(来自 ThinkPython,练习 10.10)

我正在研究AllenDowney的如何像计算机科学家一样思考,并且我已经编写了我认为是练习10.10的功能正确的解决方案。但它只用了10多个小时(!)来运行,所以我想知道我是否遗漏了一些非常明显和有用的优化。这是练习:“如果从每个词中交替取字母形成一个新词,则两个词‘互锁’。例如,‘shoe’和‘cold’互锁形成‘schooled’。编写一个程序,找出所有互锁的词对。提示:不要枚举所有对!”(对于这些单词列表问题,Downey提供了一个包含113809个单词的文件。我们可以假设这些单词在一个列表中,列表中的每个项目一个单词。)这是我的解决方案:frombisectimportbise