2

我有一本可能有不同数量的键的字典。键的值是一个数字列表。我想比较这些列表中的每一个并获取列表中所有项目的最大值的列表。

如果我以以下方式传递它,内置的 max() 函数将为我提供所有项目的最大值:

最大值(列表,列表b,列表c)

列表的数量各不相同,我的字典看起来像这样:

myDict = {1:lista,2:listb:3:listc,...}

我在想或类似的事情:

maxlist = max(对于 myDict.keys() 中的项目:myDict[item])

但我认为这行不通。请帮忙!

4

3 回答 3

1

生成器表达式的正确语法是

maxlist = max(myDict[item] for item in myDict.keys())

在这种情况下,首先使用会容易得多myDict.values()

maxlist = max(myDict.values())
于 2012-04-13T19:50:06.213 回答
1

怎么样:

>>> p = {1: [2,3], 4: [5,6,7]}
>>> max(p.values())
[5, 6, 7]

对于字典,values()返回值,因此您不需要显式迭代字典中的所有键/值。

于 2012-04-13T19:50:21.220 回答
0

给定字典垃圾邮件,您可以找到最大值

max(spam.values(),key=len)

现在你的问题有点模棱两可,你想找到的最大值是多少

以上将返回您具有最大元素的列表的长度(又名长度是最大的)

相反,如果您想获取所有列表的最大元素(单个最大元素),您也可以这样做

max(itertools.chain(*spam.values()))

相反,如果你想找到你可以做的最大值的列表

max(spam.values())
于 2012-04-13T19:51:17.400 回答