我有一本字典,比如说 d1,它看起来像这样:
d = {'file1': 4098, 'file2': 4139, 'file3': 4098, 'file4': 1353, 'file5': 4139}
现在,我已经想出如何让它告诉我是否有任何重复。但我想让它做的是告诉我是否有,以及哪些 2(或更多)值(和相应的键)是重复的。
上面的输出会告诉我 file1 和 file3 是相同的,而 file2 和 file5 是相同的
我已经尝试了几个小时,但还没有找到正确的解决方案。
我有一本字典,比如说 d1,它看起来像这样:
d = {'file1': 4098, 'file2': 4139, 'file3': 4098, 'file4': 1353, 'file5': 4139}
现在,我已经想出如何让它告诉我是否有任何重复。但我想让它做的是告诉我是否有,以及哪些 2(或更多)值(和相应的键)是重复的。
上面的输出会告诉我 file1 和 file3 是相同的,而 file2 和 file5 是相同的
我已经尝试了几个小时,但还没有找到正确的解决方案。
试试这个来获得重复项:
[item for item in d.items() if [val for val in d.values()].count(item[1]) > 1]
输出:
[('file3', 4098), ('file2', 4139), ('file1', 4098), ('file5', 4139)]
接下来按元组中的第二项对列表进行排序:
list = sorted(list, key=operator.itemgetter(1))
最后用于itertools.groupby()
按第二项分组:
list = [list(group) for key, group in itertools.groupby(list, operator.itemgetter(1))]
最终输出:
[[('file3', 4098), ('file1', 4098)], [('file2', 4139), ('file5', 4139)]]