如何在python中创建未知数量的变量

时间:2013-07-16 19:19:18

标签: python list variables

我正在制作一个阅读电子表格的程序。对于每一列,我的程序会创建该列每行中所有值的列表。为了确定我需要多少列表,我有变量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个将被遗漏)是坏的实践。我想学习如何使我的程序适应有多少列。

6 个答案:

答案 0 :(得分:1)

您可以使用列表列表:

例如:

[['col1','col2'],[1,2]]

这样,您可以拥有动态数量的列表。

答案 1 :(得分:1)

您应该使用列表列表或列表词典。

答案 2 :(得分:1)

列表列表(或实际上是依次为您提供元组的生成器)是您从csv模块接收的数据类型。这可能是您想要使用的。

请参阅:http://docs.python.org/dev/library/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

这是the tutoral on its usage