考虑嵌套列表:
d = [[1,2,3],[4,5,6]]
我要为此结果将其元素zip
:
[[1,4],[2,5],[3,6]]
该怎么做?一种不正确的方法是
list(zip(d))
但是,给出:
[([1, 2, 3],), ([4, 5, 6],)]
做zip
的正确方法是什么?
您需要通过解压缩(*
)作为zip()的单个参数来给出单个子列表,如下所示:
d = [[1,2,3],[4,5,6]]
zip(*d) # You need this one
[(1, 4), (2, 5), (3, 6)]
这甚至适用于更长的列表,如果这是您想要的行为:
zip(*[[1,2,3],[4,5,6],[7,8,9]])
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
如果要使用列表列表而不是元组列表,请执行以下操作:
map(list, zip(*d))
[[1, 4], [2, 5], [3, 6]]
这将解决问题:
list(zip(*d))
您在压缩d
之前应先将其解压缩:
list(zip(*d))
输出是一个元组列表,如下:
[(1, 4), (2, 5), (3, 6)]
我希望这很适合您。
d = [[1,2,3],[4,5,6]]
a= d[0]
b= d[1]
print(tuple(zip(a,b)))