我正在制作一个阅读电子表格的程序。对于每一列,我的程序会创建该列每行中所有值的列表。为了确定我需要多少列表,我有变量columnBound,它是电子表格中的列总数。如果有3列,如何制作有时会创建3个列表的程序,如果有8列,有时会创建8个列表?
例如,如果总共有3列,我知道我可以轻松拥有list1,list2,list3,并根据需要构建它们,但是如何让我的程序根据columnBound构建动态数量的列表?
就像我想要
for x in range (0, columnBound):
listx = []
我会有list1,list2,....一直到listx(或listcolumnBound)
我对编程非常陌生,并且非常喜欢概念上的帮助,这是一个正确的方向。我不知道如何谷歌这个问题,因为它非常抽象。
谢谢!
额外信息:
我的程序将使用电子表格作为输入。每列包含对应于特定商家地址的5位数参考号。然后,它将采用不同的电子表格,其中每一行都有一个参考代码,但需要在最后一列中插入一个地址。我将查询每个列表以查看它是否具有匹配的ref代码并在电子表格中输入相应的地址。有时我会有5个地址列,有时我可能有8个。我知道制作一个明确输入的程序(我专门创建列表1-8,如果有9个地址列,第9个将被遗漏)是坏的实践。我想学习如何使我的程序适应有多少列。
答案 0 :(得分:1)
您可以使用列表列表:
例如:
[['col1','col2'],[1,2]]
这样,您可以拥有动态数量的列表。
答案 1 :(得分:1)
您应该使用列表列表或列表词典。
答案 2 :(得分:1)
列表列表(或实际上是依次为您提供元组的生成器)是您从csv
模块接收的数据类型。这可能是您想要使用的。
答案 3 :(得分:0)
使用列表列表来完成此任务。 这一行:
list = [[0] * 3] * 3 创建一个列表,其中包含对单个列表[0,0,0]的三个引用。
答案 4 :(得分:0)
您可以创建列表列表。您可以使用csv提取每一行。
rows=list()
for x in range(0, columnBound):
rows.append(extracted_rows_in_each_column)
输出将如下所示:rows = [[row col#1的值],[col#2行的值],.......]
rows=[[values of rows col #1],[values of rows col #2],.......]
答案 5 :(得分:0)
在您的情况下,我认为最好使用我的库pyexcel,它将为您读取excel文件并为您提供统一数据矩阵中的数据。您还可以向数据矩阵添加自定义格式。然后使用它就好像你有一个二维数组。
假设您在excel文件中包含这些数据
1 2 3
4 5 6
7 8 9
以下示例代码显示了如何随机访问单元格:
>>> import pyexcel
>>> reader = pyexcel.Reader("example.xls")
>>> print reader[1][1]
5