字典中列表的最大/最小值
我有一个字典,它把一个id_映射到一组数据值,像这样:dic = {id_ : [v1, v2, v3, v4]}
。
我想遍历字典里的每个值,并找出某个列表中指定位置的最大值和最小值。
我想做的事情大概是这样的:
maximum = max([data[0], ??) for id_, data in self.dic.items()])
...但显然这样做是行不通的。有没有办法像上面那样用一行代码实现呢?
2 个回答
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()
会返回一个字典值的迭代器,而不会生成一个副本,因此比values()
(在Python 3之前)更高效。
9
你需要像这样使用它:
maximum = max(data[0] for data in dic.values())
因为你没有用到你的 keys
,所以直接用 dict.values()
来获取值就可以了。