python - python 查找重复行

标签 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

我怎样才能制作一个只在第一个世界上查找重复项并打印如下输出的脚本:

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

我不需要看到其他单行。

最佳答案

使用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']

关于python - python 查找重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52163823/

相关文章:

带 flask 的 Python CGI 不起作用

c++ - opengl 程序在 glBegin(GL_QUADS) 上崩溃

python - Kraken API 请求发送异常

python - 使用python将excel转换为 Feather 格式

php - 如何在使用 MySQL 数据库时更好地可视化数据?

linux - 默认情况下,zipcloak 将临时文件放在哪里?

linux - pwd中的所有目录查找目录中的文件数

linux - 使用 slurm 作业 ID

linux - 如何在 Linux 中将 cout 重定向到控制台?

python - 合并 django-tables2 和动态模型中的表