我有一个类型为defaultdict(list)的python字典这个字典是这样的:
a = {1:[1,2,3,4],2:[5,6,7,8]....n:[some 4 elements]}
Run Code Online (Sandbox Code Playgroud)
所以基本上它有n个键,它有一个列表作为值,所有列表都是相同的长度.现在,我想建立一个类似这样的列表.
[[1,5,...first element of all the list], [2,6.. second element of all the list]... and so on]
Run Code Online (Sandbox Code Playgroud)
所以我基本上如何从所有键获得kth值..是否有pythonic方式来做到这一点.. ?? 谢谢
DSM*_*DSM 10
>>> a = {1:[1,2,3,4],2:[5,6,7,8], 3:[9, 10, 11, 12]}
>>>
>>> zip(*(a[k] for k in sorted(a)))
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]
Run Code Online (Sandbox Code Playgroud)
(好吧,这会产生元组,而不是列表,但希望这不是问题.)
更新:我比上面更喜欢上面这个,但以下几个键击更短:
>>> zip(*map(a.get, sorted(a)))
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]
Run Code Online (Sandbox Code Playgroud)