【发布时间】:2017-08-31 21:25:34
【问题描述】:
我正在尝试比较字典中键中的元素。我想首先比较键的所有第一个元素,然后如果有多个具有最高值的元素,则比较这些键中的第二个元素。
例如:
>>> my_dict = { 111: [50, 2, 34], 122: [50 , 4, 45], 133: [40, 1, 12], 144: [20, 5, 77]}
1) 在第一个元素中搜索最高值。结果应该是:
('111', '122')
2) 在“111”和“112”的第二个元素中搜索最小值。结果应该是:
('111')
我找到this 讨论以找到具有最大值的键。返回具有相同最大值的多个键的一种解决方案是:
>>> stats = {'a':1000, 'b':3000, 'c': 100, 'd':3000}
>>> [key for key,val in stats.iteritems() if val == max(stats.values())]
['b', 'd']
这里的问题是这些键只有一个元素。我需要弄清楚如何为具有多个元素的键执行此操作。
我想我可以像这样返回每个键的第一个元素:
>>> [item[0] for item in my_dict.values()]
['50', '50', '40', '20']
但是我该如何比较它们呢?提前感谢您的帮助!
【问题讨论】:
-
如果您不关心键,
my_dict.values()会给您一个列表列表(值)。然后您可以比较列表。 -
您可以使用 for 循环、
cmp()、sum()等函数或 numpy 等外部库来做到这一点。
标签: python dictionary key max min