如何在文本文件中生成所有可能的单词



我想从文本文件中生成所有可能的单词,但我的代码不正确。

我现有的代码:

file = open('../data.txt')
for line in file.readlines():
line = line.strip()
for line1 in file.readlines():
line1 = line1.strip()      
print ("{} {}".format(line, line1))

data.txt #——我的数据文件的文本格式

hero
muffin
ego
abundant
reply
forward
furnish

所需输出:#——生成结果

hero muffin
hero ego
hero abundant
hero reply
hero forward
hero furnish
muffin hero
muffin ego
muffin abundant
muffin reply
muffin forward
muffine furnish
ego hero
ego muffin
so on...

试图在嵌套循环中多次读取相同的文件句柄是行不通的,因为您将在第一次通过内部循环时遇到文件的末尾,尽管您可以通过在外部循环中关闭和重新打开文件来使工作,但没有理由这样做(它既过于复杂又不必要地缓慢)。

相反,只需将所有单词读入列表(一次,这样您就不会浪费时间一遍又一遍地从磁盘读取相同的信息),并使用itertools.permutations生成该列表的所有2单词排列。

import itertools
with open("data.txt") as f:
words = [word.strip() for word in f]
for p in itertools.permutations(words, 2):
print(*p)

打印:

hero muffin
hero ego
hero abundant
hero reply
hero forward
hero furnish
muffin hero
muffin ego
muffin abundant
...

相关内容

  • 没有找到相关文章

最新更新