我有一本字典可能有不同数量的键。键的值是一个数字列表。我想比较每个列表并获得列表中所有项目的最大值。
内置的max()函数将为我提供所有项目的最大值,如果我通过以下方式传递它:
max(lista,listb,listc)
列表的数量各不相同,我的字典看起来像这样:
myDict = {1:lista,2:listb:3:listc,...}
我在想或类似的东西:
maxlist = max(对于myDict.keys()中的项目:myDict [item])
但我认为这不起作用。请帮忙!
答案 0 :(得分:1)
生成器表达式的正确语法是
maxlist = max(myDict[item] for item in myDict.keys())
在这种情况下,首先使用myDict.values()
会更容易:
maxlist = max(myDict.values())
答案 1 :(得分:1)
怎么样:
>>> p = {1: [2,3], 4: [5,6,7]}
>>> max(p.values())
[5, 6, 7]
对于字典,values()
返回值,因此您不需要显式迭代字典中的所有键/值。
答案 2 :(得分:0)
鉴于字典垃圾邮件,您可以找到最大值
max(spam.values(),key=len)
现在你的问题在某种意义上有点含糊不清,你想找到的最大值是什么
以上将返回列表的长度,该列表具有最大元素(也就是长度是最大值)
如果您希望获得所有列表的最大元素(单个最大元素),您也可以
max(itertools.chain(*spam.values()))
相反,如果你想找到具有你可以做的最大值的列表
max(spam.values())