python - 对 Python 中的列表列表进行简洁快速的 zip 操作?

标签 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)]

谢谢。

最佳答案

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

print zip(*[x, y])

与:

print zip(x,y)

如果你真的在使用 2 个元素列表,你可以这样做:

print zip( a[0], b[0] )
print zip( a[1], b[1] )

(当您省去 1 个 zip 时,它会稍微更有效率,但我不相信它会更清晰,这是您真正应该担心的)。


如果你真的很喜欢紧凑的代码,你可以使用map:

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

这可能又比其他版本更有效,但我认为您在代码清晰度方面付出了轻微的代价(尽管其他人可能不同意)。

关于python - 对 Python 中的列表列表进行简洁快速的 zip 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12906688/

相关文章:

c++ - QJson用什么来解析JSON的语法?

c# - 当必须锁定每个列表元素时,多个线程应该如何访问列表?

python - 是否有更 Pythonic 的方法来防止向列表中添加重复项?

python - 如何根据索引从 Python 列表中同时删除多个值?

python - Sage 5.0 令人困惑的语法错误

algorithm - 随机元素的多参数优化

java - Mockito Rest 终点测试 - 将列表与报价进行比较

python - UDP包出现在wireshark中,但程序收不到

python - Pandas to_html float_format

algorithm - 我如何最低限度地表示检查树的检查状态?