我们有一个名为wordlist的文件,其中包含1,876 KB的按字母顺序排列的单词,所有单词都长于4个字母,并且在每个新的二字构造(ab、ac、ad等)之间包含一个回车符:
wfile = open("wordlist.txt", "r+")
我希望创建一个只包含与其他较小单词不相关派生词的新文件。例如,单词列表包含以下单词["abuser, abused, abusers, abuse, abuses, etc.],则创建的新文件应仅保留单词"abuse",因为它是所有这些单词之间的“最低公共分母”。同样,单词“rodeo”将被删除,因为它包含单词“rode”。
我尝试了以下实现:
def root_words(wordlist):
result = []
base = wordlist[1]
for word in wordlist:
if not word.startswith(base):
result.append(base)
print base
base=word
result.append(base)
return result;
def main():
wordlist = []
wfile = open("wordlist.txt", "r+")
for line in wfile:
wordlist.append(line[:-1])
wordlist = root_words(wordlist)
newfile = open("newwordlist.txt", "r+")
newfile.write(wordlist)
但它总是让我的电脑冻结。有什么解决办法吗?