gpt4 book ai didi

Python 或 Bash - 遍历文本文件中的所有单词

转载 作者:行者123 更新时间:2023-11-28 22:42:31 24 4
gpt4 key购买 nike

我有一个包含数千个单词的文本文件,例如:

laban
labrador
labradors
lacey
lachesis
lacy
ladoga
ladonna
lafayette
lafitte
lagos
lagrange
lagrangian
lahore
laius
lajos
lakeisha
lakewood

我想遍历每个单词,所以我得到:

labanlaban
labanlabrador
labanlabradors
labanlacey
labanlachesis
etc...

在 bash 中,我可以执行以下操作,但速度非常慢:

#!/bin/bash
( cat words.txt | while read word1; do
cat words.txt | while read word2; do
echo "$word1$word2" >> doublewords.txt
done; done )

有没有更快更有效的方法来做到这一点?另外,我如何以这种方式迭代两个不同的文本文件?

最佳答案

如果你能将列表放入内存:

import itertools

with open(words_filename, 'r') as words_file:
words = [word.strip() for word in words_file]

for words in itertools.product(words, repeat=2):
print(''.join(words))

(你也可以做一个双循环,但我今晚感觉 itertools。)

我怀疑这里的好处是我们可以避免一遍又一遍地重新读取文件; bash 示例中的内部循环将为外部循环的每次迭代生成一个文件。此外,我认为 Python 往往比 bash 执行得更快,IIRC。

你当然可以用 bash 来实现这个技巧(将文件读入一个数组,写一个双 for 循环),只是更痛苦。

关于Python 或 Bash - 遍历文本文件中的所有单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31603031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com