如标题所示,我想查找和删除文件中的重复行。这样做很容易...这里的陷阱是我想知道最快,最高效的方法是什么(假设您拥有千兆字节的文件,并且您想像您可以)
如果您知道某种方法...那么复杂,那是我想知道的。我听到了诸如循环展开之类的东西,然后开始猜测最简单的东西是最快的,所以我很好奇。
最佳答案
最好的解决方案是保留到目前为止看到的一组行,并仅返回其中未包含的行。 python的collections实现中使用了这种方法
def unique_lines(filename):
lines = open(filename).readlines()
seen = set()
for line in lines:
if line not in seen:
yield line
seen.add(line)
然后
for unique_line in unique_lines(filename)
# do stuff
当然,如果您不关心顺序,可以将整个文本直接转换为一组,例如
set(open(filename).readlines())
关于python - 查找和删除文件中的重复行(最快,最有效的方式),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40790260/