找到值最多的键并打印其值(dictionary、python)



假设我们有一个dict,

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

输出应该是

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

因为它得到了最多的值。

这就是我目前所拥有的:

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

为什么不只是:

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

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

由于标题要求他们密钥-以下是如何做到

>>> 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'])

最新更新