如何找到存储在字典中的并行比较的最多几个元组。
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)。
请提供建议。
(编辑数字混乱)
答案 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