如何从文件中删除重复行以及与此重复相关的唯一行?你知道吗
示例:
输入文件:
line 1 : Messi , 1
line 2 : Messi , 2
line 3 : CR7 , 2
我希望输出文件是:
line 1 : CR7 , 2
Just(“CR7,2”我想删除重复的行以及与此重复相关的唯一行)
如果第一行中有匹配项,则删除取决于第一行我要删除此行
如何在python中实现这一点 使用此代码可以编辑哪些内容:
lines_seen = set() # holds lines already seen
outfile = open(outfilename, "w")
for line in open(infilename, "r"):
if line not in lines_seen: # not a duplicate
outfile.write(line)
lines_seen.add(line)
outfile.close()
做这项工作最好的方法是什么?你知道吗
根据您的输入,您可以执行以下操作:
我使用的输入:
输出:
注意:这个解决方案假定Python3.7+,因为它假定字典是按插入顺序排列的。你知道吗
你试过
Counter
吗? 例如:输出:
[2]
或者举一个较长的例子:输出:
[2, 5, 3]
编辑:
由于一开始没有列表,根据文件大小,有两种方法,第一种方法用于足够小的文件(否则可能会出现内存问题),第二种方法用于较大的文件。你知道吗
以列表形式读取文件并使用上一个答案:
第一行以列表的形式完整地读取文件。这意味着,真正大的文件将加载到您的内存中。如果你需要大文件,你可以继续使用一种“黑名单”:
使用黑名单:
在这里,您将所有行添加到集合中,并且只将集合写入末尾的文件中。黑名单会记住所有多次出现的情况,因此即使一次也不会写多行。你不可能一次就完成,因为你不知道,如果第二次出现同一行的话。如果你有更多的信息(如多行总是连续出现),你可以做不同的
编辑2
如果要根据第一部分进行操作:
注:到现在为止,我刚刚添加了代码,可能有更好的方法
例如,使用dict:
相关问题 更多 >
编程相关推荐