对文本行进行去重

情景:有个txt文本,要求以行为单位进行去重。

方法:

  1. 将行转化为hash,也可以使用map
  2. 用Python dict
  3. Python中导入pandas,使用drop_duplicates
  4. Emeditor中,工具-插件-删除重复行
  5. Shell中  awk ‘!a[$0]++’ file.txt
  6. Shell中 用sort -u

另一种伪代码(思想)用集合 set,思路:

values = set()
vals_len = 0
dest_file = open(‘dest_file’, ‘w’)
with open txt: for line in readlines():
val = hash(line)
vals_len = len(values)
values.add(val) #主要在这一步借助 set 的不重复特性,判断集合长度是否增长
if len(values) == vals_len+1:
dest_file.write(line)
dest.file.close()