找到具有最大值的键并打印其值(字典,python)

时间:2013-12-18 02:28:43

标签: python sorting dictionary

假设我们有一个字典,

   dict = {'blue': ['sky','sea'], 'orange': ['carrots','sunset','oranges'], 'green': ['grass']}

输出应为

['carrots','sunset','oranges']

因为它获得了最大数量的值。

这是我到目前为止所做的:

for k,v in dict.items():
    print(max(k,len(v)))

2 个答案:

答案 0 :(得分:9)

为什么不呢:

>>> d = {'blue': ['sky','sea'], 'orange': ['carrots','sunset','oranges'], 'green': ['grass']}
>>> print max(d.values(), key=len)
['carrots', 'sunset', 'oranges']

最好不要命名字典dict。这将覆盖内置类型。

答案 1 :(得分:1)

由于标题要求他们输入密钥 - 这是如何做到的

>>> d = {'blue': ['sky','sea'], 'orange': ['carrots','sunset','oranges'], 'green': ['grass']}
>>> max_key = max(d, key=lambda k: len(d[k]))
>>> max_key
'orange'

一旦你拥有密钥,查找它比迭代d.values()更快 - 假设你确实也需要密钥

>>> d[max_key]
['carrots', 'sunset', 'oranges']

或者,你可以拉出一个包含键/值对的元组

>>> max(d.items(), key=lambda i :len(i[1]))
('orange', ['carrots', 'sunset', 'oranges'])