为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 python 中从两个二维列表创建元组的二维列表?

如何在 python 中从两个二维列表创建元组的二维列表?

守着星空守着你 2023-10-25 10:41:38
我有两个二维列表,例如:a = [[1, 2], [3, 4]] b = [[5, 6], [7, 8]]那么我怎样才能得到一个二维元组列表:[[(1,5),(2,6)],[(3,7),(4,8)]]?
查看完整描述

2 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

我看到你已经回答了你自己的问题,如下:


[[(i1,j1) for i1, j1 in zip(i, j)] for i, j in zip(a, b)]

然而,存在一种简化的形式,沿着类似的路线,但直接使用元组,而不是将它们解压到多个变量中——第一个列表理解也可以通过调用以下的输出来list替换zip:


[list(zip(*t)) for t in zip(a,b)]

或者:


vars = (a, b)

[list(zip(*t)) for t in zip(*vars)]

除了稍微简单一点之外,这样做的优点是更容易推广到更多变量,例如,如果您有:


a = [[1, 2], [3, 4]]

b = [[5, 6], [7, 8]]

c = [[9, 10], [11, 12]]

然后你可以这样做:


vars = (a, b, c)


[list(zip(*t)) for t in zip(*vars)]

为你带来:


[[(1, 5, 9), (2, 6, 10)], [(3, 7, 11), (4, 8, 12)]]


查看完整回答
反对 回复 2023-10-25
?
HUH函数

TA贡献1836条经验 获得超4个赞

我使用了这段代码:

data = [[(i1,j1) for i1, j1 in zip(i, j)] for i, j in zip(a, b)]


查看完整回答
反对 回复 2023-10-25
  • 2 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信