2

我有一个程序绘制一个巨大的数字列表,它可能不是最 Pythonic 的,但它可以工作。我有 3 个主数组我的 X、Y 和 Y 错误。但是,每个数组都有子数组:

xAxis = [[x1],[x2],[x3],[...]
yAxis = [[y1],[y2],[y3],[...]]
yError = [[err1],[err2],[err3],[...]]

在这种情况下,我绘制了 1 到 6 个 y 值,xAxis[0]并且具有相同数量的yErrors

然后我使用这个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])

等等。

4

2 回答 2

2

这应该这样做。

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

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

于 2013-10-31T15:13:22.680 回答
2

这能满足您的需要吗?

zip(*([xAxis[0]] + yAxis[:howManyY] + yError[:howManyY]))
于 2013-10-31T15:18:17.520 回答