Python zip x阵列数

Python zip x阵列数,python,arrays,Python,Arrays,我有一个程序绘制了一个巨大的数字列表,它可能不是最具python风格的,但它很有效。我有3个主数组,分别是X、Y和Y错误。每个阵列都有子阵列,但是: xAxis = [[x1],[x2],[x3],[...] yAxis = [[y1],[y2],[y3],[...]] yError = [[err1],[err2],[err3],[...]] 在这个例子中,我将1到6y的任意值与xAxis[0]作图,并且有相等数量的yerror 然后我使用matrix2latex包。这是一个困难的部分,因为

我有一个程序绘制了一个巨大的数字列表,它可能不是最具python风格的,但它很有效。我有3个主数组,分别是X、Y和Y错误。每个阵列都有子阵列,但是:

xAxis = [[x1],[x2],[x3],[...]
yAxis = [[y1],[y2],[y3],[...]]
yError = [[err1],[err2],[err3],[...]]
在这个例子中,我将1到6y的任意值与xAxis[0]作图,并且有相等数量的yerror

然后我使用matrix2latex包。这是一个困难的部分,因为matrix2latex需要压缩表中的每个数组

我想避免:

if howManyY == 1:
        zip(xAxis[0],yAxis[0],yError[0])
if howManyY == 2:
        zip(xAxis[0],yAxis[0],yAxis[1],yError[0],yError[1])
等等。

这应该可以

zipArgs = [ xAxis[0] ]
zipArgs.extend([ yAxis[i] for i in xrange(howManyY) ])
zipArgs.extend([ yError[i] for i in xrange(howManyY) ])
zip(*zipArgs)
将列表或元组转换为函数的位置参数。

应该这样做

zipArgs = [ xAxis[0] ]
zipArgs.extend([ yAxis[i] for i in xrange(howManyY) ])
zipArgs.extend([ yError[i] for i in xrange(howManyY) ])
zip(*zipArgs)

将列表或元组转换为函数的位置参数。

这是否满足您的需要

zip(*([xAxis[0]] + yAxis[:howManyY] + yError[:howManyY]))

这能满足你的需要吗

zip(*([xAxis[0]] + yAxis[:howManyY] + yError[:howManyY]))

这与我上面的原始代码给出的顺序不同。我不太清楚为什么,但我也试过了。我的结果最终是[[xvalues]、[y1values]、[y2values]、[yerror1valeus]、[yerror2values]]而不是[x,y1,y2,e1,e2,x,y1,y2,y2],这给出了与上面的原始代码不同的顺序。我不太清楚为什么,但我也试过了。我的结果是[[xvalues]、[y1values]、[y2values]、[yerror1valeus]、[yerror2values]]而不是[x,y1,y2,e1,e2,x,y1,y2,y2],非常有效,谢谢!这与瓦伦丁·克莱门特所说的非常相似,但随后他删除了他的答案,非常感谢!这与瓦伦丁·克莱门特所说的非常相似,但随后他删除了他的答案