以下是我所拥有的一个例子:
x1 = [1,2,3]
x2 = [4,5,6]
如果我跑:
x3 = zip([x1,x2])
我得到:[([1,2,3],),([4,5,6])]
如果我跑:
x3 = zip(x1,x2)
我得到了我想要的东西:[(1,4),(2,5),...]
以下是问题的症结所在:
我有一个函数签名,我想将其定义为:
def function(...):
return [x1,x2,...],y
其中x1和x2,...是每个列表,x的数量是任意的......
我需要输出这样的输出,基本上是:
[(x1[0],x2[0],...,xn[0]), (x1[1],x2[1],...,xn[1]),...,(x1[n2],x2[n2],...,xn[n2])]
如果我从函数中输出一个元组,那么zip仍会失败(它会像列表一样拉链):
def function(x1,x2):
return (x1,x2)
x4 = zip(function(x1,x2))
output: [([1,2,3],),...]
我唯一能想到的是以某种方式积累一个论点......但我有一种感觉,我试图用zip
做的事情可能是不可能的。有没有办法传回一个向量列表,并将它们转换为行列表,其中元素是每个向量的第一个元素?我真的宁愿避免python for循环这样做......(甚至可以累积一个参数传递给函数?)
答案 0 :(得分:3)
一如既往。
zip(*[x1,x2])