我已经看到围绕这类问题的多个回复,但我不相信我已经看到任何关于我关注的列表类型。希望我不会在这里重复任何事情。非常感谢您的帮助!
我有一个逗号分隔文件,用于数据丰富。它从标题 - TPCode,corporation_name
开始 - 然后是值列表。有大约35,000行(如果重要的话)。
我注意到,当显示来自该查找文件(CSV)的数据时,同一客户有多个条目。我想运行Python脚本来删除重复项
,而不是进入并手动删除它们格式为:
值,值
等,使用Python删除重复项的最佳方法是什么?作为旁注,每个TPCode应该是不同的,但是公司名称可以有多个TPCode。
如果您需要任何其他信息,请与我们联系。
提前致谢!
答案 0 :(得分:0)
很难从你的问题中判断每一行是否应该是唯一的。如果是这样,你可以这样做:
for l in sorted(set(line for line in open('ors_1202.log'))):
print(l.rstrip())
否则我们需要更多信息。
答案 1 :(得分:0)
由于csv行是元组而元组是不可变对象,因此您可以遍历rwos并使用set
容器来保存行:
import csv
seen=set()
with open('in_file.csv', 'rb') as csvfile,pen('out_file.csv', 'wb') as csvout:
spamreader = csv.reader(csvfile, delimiter=',')
spamwriter = csv.writer(csvout, delimiter=',')
for row in spamreader:
seen.add(row)
if row not in seen :
pamwriter.writerow(row)
请注意,set
中的成员船检查具有O(1)复杂性。