如何在寻找重复行的同时将Dictionary输出打印到新行中

时间:2018-09-14 13:44:53

标签: python-3.x

我刚刚选择了下面的代码,可以很好地确定重复的行和行号,并且可以正常工作。

from collections import defaultdict
def find_dupl(log):
    output = defaultdict(list)
    with open(log) as f:
        for i, line in enumerate(f):
            line = line.strip()
            output[line].append(i)
        print({k: v for k, v in output.items() if len(v) > 1})
find_dupl('rhel65')

结果输出如下,每个主机名或要打印到新行的项目。

{'hostlab01': [0, 1], 'hostlab02': [34, 35, 36]}

所需为:

hostlab01: [0, 1] 
hostlab02: [34, 35, 36]

2 个答案:

答案 0 :(得分:1)

在函数中更改一行:

print(*['{}: {}'.format(k, v) for k, v in output.items() if len(v) > 1], sep='\n')

答案 1 :(得分:1)

将打印行更改为:

print("\n".join("{}\t{}".format(k, v) for k, v in output.items() if len(v) > 1))