Python:查找字典tupled-value的最大值

时间:2012-06-01 04:45:08

标签: python dictionary tuples

如何找到存储在字典中的并行比较的最多几个元组。

d = {'one':(2,9,6), 'two':(7,2,1), 'three':(1,5,12)}

因此,元组(2,9,6),(7,2,1)和(1,5,12)'压缩'产生最大值,即(7,9,12)。

请提供建议。

(编辑数字混乱)

2 个答案:

答案 0 :(得分:2)

我不完全确定你的问题是什么,但是拉链部分让我觉得这就是你想要的:

d = {'one':(1,2,3), 'two':(3,2,1), 'three':(4,5,6)}
tuple(max(x) for x in zip(*d.values()))

这实际上将元组拉到一起(第一个元组的第一个元素与第二个元组的第一个元素,依此类推),然后找到每个压缩元组的最大值。

答案 1 :(得分:2)

d = {'one':(2,9,6), 'two':(7,2,1), 'three':(1,5,12)}
tuple(map(max, *d.values()))

$ python -m timeit -s"d = {'one':(2,9,6), 'two':(7,2,1), 'three':(1,5,12)}"\
                     "tuple(map(max, *d.values()))"
1000000 loops, best of 3: 1.08 usec per loop
$ python -m timeit -s"d = {'one':(2,9,6), 'two':(7,2,1), 'three':(1,5,12)}"\
                     "tuple(max(x) for x in zip(*d.values()))"
100000 loops, best of 3: 2.1 usec per loop