python - 如何返回与字典中最小值对应的键列表

标签 python dictionary

假设我有一本水果总数的字典:

Fruits = {"apple":8, "banana":3, "lemon":5, "pineapple":2,}

我希望输出是

["pineapple"]

因为菠萝的值(value)最低。或者如果我有这个:

Colour = {"blue":5, "green":2, "purple":6, "red":2}

输出将是:

["green","red"]

因为绿色和红色的值(value)都最小。

那么如何返回字典中的最小值呢?

最佳答案

可以做两次:

>>> colour
{'blue': 5, 'purple': 6, 'green': 2, 'red': 2}
>>> min_val = min(colour.itervalues())
>>> [k for k, v in colour.iteritems() if v == min_val]
['green', 'red']
  1. 找到字典值的最小值
  2. 然后返回并提取值所在的键...

另一种选择(需要一些导入,这意味着如果需要,您可以取 n 多个)- 这段代码只取第一个(这将是最小值):

from itertools import groupby
from operator import itemgetter

ordered = sorted(colour.iteritems(), key=itemgetter(1))
bykey = groupby(ordered, key=itemgetter(1))
print map(itemgetter(0), next(bykey)[1])
# ['green', 'red']

关于python - 如何返回与字典中最小值对应的键列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16099112/

相关文章:

arrays - swift 可编码 : Array of Dictionaries

python - 使用 Flask 和 Python 的 Heroku Postgres 数据库

python - python 正则表达式的 UnicodeDecodeError

python - Tensorboard 未在 Windows 上填充图形

swift - 仅字典存储一个键和值/覆盖上一个键和值

python - 将 str.contains 映射到 pandas DataFrame

Python-根据平均值将递增的类分配给列表val

python - geoJSON:如何创建具有动态数量特征的FeatureCollection?

c++ - 使用 unordered_map 值初始化指向 vector 的指针时出错

html - 像谷歌地图一样在侧面板旁边对齐 map