gpt4 book ai didi

python - 如何在 Python 中删除输出文件中的重复条目?

转载 作者:太空宇宙 更新时间:2023-11-03 18:44:47 24 4
gpt4 key购买 nike

我对 Python 很陌生。我正在尝试从以下格式的文本文件中提取数据:

85729 block 寻址索引近似文本检索

85730 基于分歧的自动查询扩展等等...

输出文本文件是单词列表,但没有重复条目。输入的文本文件可以有重复项。输出将如下所示:

阻止

寻址

索引

大约

等等......

到目前为止,通过我的代码,我可以获得单词列表,但包含重复项。在将单词输入到输出文件之前,我尝试检查重复项,但输出并未反射(reflect)这一点。有什么建议么?我的代码:

infile = open("paper.txt", 'r')
outfile = open("vocab.txt", 'r+a')
lines = infile.readlines()
for i in lines:
thisline = i.split()
for word in thisline:
digit = word.isdigit()
found = False
for line in outfile:
if word in line:
found = True
break
if (digit == False) and (found == False ):
outfile.write(word);
outfile.write("\n");

我不明白Python中的for循环是如何关闭的。在 C++ 或 Java 中,大括号可用于定义 for 循环体,但我不确定它在 Python 中是如何完成的。有人可以帮忙吗?

最佳答案

Python 循环是通过缩进来封闭的;左边的空白具有语义意义。这可以让您免于疯狂地输入大括号或 do/od 或其他任何内容,并消除一类错误,即您的缩进意外地无法准确反射(reflect)您的控制流。

您的输入似乎不够大,不足以证明对输出文件进行循环(如果确实如此,我可能会使用 gdbm 表),所以您可能可以执行类似的操作(非常简单地测试) :

#!/usr/local/cpython-3.3/bin/python

with open('/etc/crontab', 'r') as infile, open('output.txt', 'w') as outfile:
seen = set()
for line in infile:
for word in line.split():
if word not in seen:
seen.add(word)
outfile.write('{}\n'.format(word))

关于python - 如何在 Python 中删除输出文件中的重复条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19759918/

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