我有一本字典,说d1看起来像这样:
d = {'file1': 4098, 'file2': 4139, 'file3': 4098, 'file4': 1353, 'file5': 4139}
现在,我已经想出如何让它告诉我是否有任何共和国。但我想让它做的是告诉我是否有任何,以及2个(或更多)值(和相应的键)是共同的。
上面的输出会告诉我file1和file3是相同的,而file2和file5是相同的
我一直试图绕过它几个小时,但还没找到合适的解决方案。
答案 0 :(得分:1)
尝试此操作以获取重复项:
[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)]]