[英]Python: Finding max of a dictionaries tupled-value
如何找到存儲在字典中的並行比較的幾個元組的最大值。
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)。
請幫忙指教。
(因數字混亂而編輯)
從您的問題中我不確定您要尋找的是什么,但是zip部分使我認為這是您想要的:
d = {'one':(1,2,3), 'two':(3,2,1), 'three':(4,5,6)}
tuple(max(x) for x in zip(*d.values()))
實際上,這將這些元組壓縮在一起(第一個元組的第一個元素與第二個元組的第一個元素,依此類推),然后為這些壓縮后的元組中的每個找到最大值。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.