在列表字典

时间:2016-07-13 08:11:56

标签: python python-2.7 dictionary

如何在不使用循环的情况下在列表中找到列表的最大值?我的字典看起来像:

data = {'key1': list1, 'key2': list2, ... 'keyn': listn}

如果我使用:

m = max(data.iterkeys(), key=lambda k: data[k])

输出是:

m = 'keyn'

我不想拥有。

3 个答案:

答案 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
相关问题