查找重复的行python

时间:2018-09-04 10:06:44

标签: python linux

我在查找重复项时仅打印这些重复项时遇到问题。我有一个文本文件,我选择了该文件并尝试查找重复项并进行打印。

我所能拥有的是:

一个名为data1.txt的文件,该文件包含以下行:

G1/0/1    fc:3f:db:8d:fd:6c
G1/0/1    38:63:bb:bb:f8:7d
G1/0/2    30:e1:71:7a:27:3b
G1/0/3    40:a8:f0:53:6f:31

我该如何制作只在第一世界中找到ducplicate的脚本并打印输出,如下所示:

G1/0/1    fc:3f:db:8d:fd:6c
G1/0/1    38:63:bb:bb:f8:7d

我不需要看其他的单行。

2 个答案:

答案 0 :(得分:1)

使用collections.defaultdict

例如:

from collections import defaultdict

res = defaultdict(list)

with open(filename) as infile:
    for line in infile:                      #Iterate each line
        val = line.strip().split()           #Get first word
        res[val[0]].append(line)

for k, v in res.items():
    if len(v) > 1:
        print(v)

输出:

['G1/0/1    fc:3f:db:8d:fd:6c\n', 'G1/0/1    38:63:bb:bb:f8:7d\n']

答案 1 :(得分:-2)

a = """
fafafafa
fawcsacaw
fafafafa
"""

arr = []

for line in a.split("\n"):
  if line not in arr:
     arr.append(line)
  else:
     print(line + " is duplicated")