从列表中创建table.png

时间:2016-12-12 19:28:12

标签: python arrays

我有以下

  • list:var = [n, x ,Y, y, E];
  • 其中:nxYyE是相同长度的列表;

如何将var中的信息输出到图像表中,以便n的信息显示在一列中?

我试图在乳胶中使用此表,因此欢迎以任何其他格式导出。我在csv中尝试过,但信息在Excel中显示不正确。

1 个答案:

答案 0 :(得分:0)

让我们使用csv模块创建一个小例子,并将;作为分隔符,以便Excel默认正确打开它。

我已经定义了3个相等长度的列表,并建立了这些列表的列表。

诀窍是使用zip*运算符将行转换为列,以将参数扩展为子列表,因此zip将每个子列表的每个元素交错,构建一个新元组。

然后在生成的迭代器上调用csv.writer.writerows以获取列中的数据。

代码:

import csv

n=list(range(1,10))
X=list(range(11,20))
E=list(range(21,30))

l = [n,X,E]

with open("foo.csv","w",newline="") as f:
# with open("foo.csv","wb") as f:  # use this instead for legacy Python 2.x
    cr = csv.writer(f, delimiter=";")
    cr.writerows(zip(*l))

结果(作为文字):

1;11;21
2;12;22
3;13;23
4;14;24
5;15;25
6;16;26
7;17;27
8;18;28
9;19;29

在Excel中打开它,你会得到3个整齐的列。

编辑:如果在您的评论之后,您有浮点数并且您想限制数字位数,请将csv.writerows行替换为:

cr.writerows((["{:.3}".format(float(x)) for x in row] for row in zip(*l)))

(每个数据转换为float并显示3位小数)