python - 在 Python 字典中保留不同值的最小键

标签 python dictionary

我有一个字典,其中包含不同的整数键和可能重复的值,如下所示:

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/

相关文章:

python - 如何判断列表中的项目是否包含某些字符

python - 在测试之间自动删除 MEDIA_ROOT

Python 使用 writerow 将两个具有不同值类型的字典写入单个 csv 文件

python - 使用可变数量的键的字典,如何获得其值的笛卡尔积?

python - 如何改进散点图中的标签放置

python - os.listdir() 中的 Windows 错误

python - takeOrdered 降序 Pyspark

python - 如何从字典中删除指定长度字符以下的值?

python - 如何减少gensim中的字典大小?

java - 迭代Hashmap时更新不同的项目