Python中列表列表的简洁快速的zip操作?

1 python algorithm list list-manipulation

有没有更简洁,更有效的方法zip在Python中实现以下操作?我将列表列表组合在一起以创建新列表,如下所示:

>>> a
[[1, 2, 3], [4, 5, 6]]
>>> b
[[10, 11, 12], [13, 14, 15]]
>>> for x, y in zip(a, b):
...   print zip(*[x, y])
... 
[(1, 10), (2, 11), (3, 12)]
[(4, 13), (5, 14), (6, 15)]
Run Code Online (Sandbox Code Playgroud)

谢谢.

mgi*_*son 6

除了更换之外,我真的没有看到更好的方法:

print zip(*[x, y])
Run Code Online (Sandbox Code Playgroud)

有:

print zip(x,y)
Run Code Online (Sandbox Code Playgroud)

如果您真的使用2个元素列表,您可能只需要:

print zip( a[0], b[0] )
print zip( a[1], b[1] )
Run Code Online (Sandbox Code Playgroud)

(当你放下1个拉链时,效率会略高一些,但我不相信它更清楚,这是你应该真正担心的).


如果您真的使用紧凑代码,可以使用map:

map(zip,a,b) #[[(1, 10), (2, 11), (3, 12)], [(4, 13), (5, 14), (6, 15)]]
Run Code Online (Sandbox Code Playgroud)

这可能比其他版本更有效,但我认为你在代码清晰度上付出了微不足道的代价(尽管其他人可能不同意).