我有一个将id_映射到数据值列表的字典,如下所示:dic = {id_ : [v1, v2, v3, v4]}
。
我试图遍历字典中的每个值并检索列表映射的某个索引的最大值/最小值。
我想做的是这样的事情:
maximum = max([data[0], ??) for id_, data in self.dic.items()])
......但显然这不起作用。是否可以像上面那样在一行中做到这一点?
答案 0 :(得分:8)
您需要使用以下内容:
maximum = max(data[0] for data in dic.values())
由于您未使用keys
,只需使用dict.values()
即可获取值。
答案 1 :(得分:1)
In [10]: index = 0
In [11]: dictA = { 1 : [22, 31, 14], 2 : [9, 4, 3], 3 : [77, 15, 23]}
In [12]: max(l[index] for l in dictA.itervalues())
Out[12]: 77
注意:itervalues()
会在字典的值上返回iterator而不会创建副本,因此比values()
更有效(在Python< 3中) )。