如何在不使用循环的情况下在列表中找到列表的最大值?我的字典看起来像:
data = {'key1': list1, 'key2': list2, ... 'keyn': listn}
如果我使用:
m = max(data.iterkeys(), key=lambda k: data[k])
输出是:
m = 'keyn'
我不想拥有。
答案 0 :(得分:2)
遍历生成器表达式中每个列表中的项目:
m = max(i for v in data.values() for i in v)
答案 1 :(得分:1)
myDict = {'key1': [1,2,3], 'key2': [4,5,6]}
maxValue = max((max(myDict[key]) for key in myDict))
输出:6
如果你是python的新手,这里有一个很容易理解Moses Koledoye的方式:
for v in myDict.values():
for i in v:
m = i if i > m else m
答案 2 :(得分:0)
您可以找到这样的最大值。没有使用任何循环。
max(max(data.values()))
但是当所有值都是可迭代的时候,这个答案是有效的。
In [1]: myDict = {'key1': [1,2,3], 'key2': [4,5,6]}
In [2]: max(max(myDict.values()))
Out[1]: 6