我有一个字典,其中包含不同的整数键和可能重复的值,如下所示:
my_data = {5:1,2:2,3:2,4:2,1:1}
我知道如何使用 set()
获取不同的值,但我想做的是用它们的键对选择不同的值,其中重复值中出现的小键,像这样:
{1:1, 2:2}
最佳答案
首先,在第二个字典中对具有相同值的键进行分组。然后,使用字典理解为所有具有重复键的值获取最小键。
>>> import collections
>>> my_data = {5:1,2:2,3:2,4:2,1:1}
>>> d = collections.defaultdict(list)
>>> for k, v in my_data.items():
... d[v].append(k)
>>> {min(keys): value for value, keys in d.items() if len(keys) > 1}
{1: 1, 2: 2}
(不确定 if len(key) > 1
。如果这不是您所说的“在重复值中”的意思,则只需删除该部分。)
关于python - 在 Python 字典中保留不同值的最小键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47183377/