Python变量列表填充

Python变量列表填充,python,list,dictionary,indexing,populate,Python,List,Dictionary,Indexing,Populate,我正在尝试用python从excel文件中读取一些数据 我想将数据放入二维列表中 [[A,1,2...],[B,2,3...],[C,5,6...]] 其中A、B、C是列标题,数字是该列中的行 现在我用它只是为了测试这是否有效,所以我知道代码并没有完全按照我上面所说的做 #Blank list array product = [] k = 0 #Read in Data for r in range(1,sheet.nrows): k += 1; product[k,1] =

我正在尝试用python从excel文件中读取一些数据

我想将数据放入二维列表中

[[A,1,2...],[B,2,3...],[C,5,6...]]
其中A、B、C是列标题,数字是该列中的行

现在我用它只是为了测试这是否有效,所以我知道代码并没有完全按照我上面所说的做

#Blank list array
product = []
k = 0
#Read in Data
for r in range(1,sheet.nrows):
    k += 1;
    product[k,1] = sheet.cell(r,1).value
我得到的错误是列表索引必须是整数,而不是元组 有没有办法用变量填充这样的列表,因为我不知道excel文件中一列可能有多少行
我听说过字典,但从我所读到的内容来看,我不认为它们是我的最佳选择,因为它们更“关键”“值”,而且我有多个值对应一个“键”

一本字典适合你,因为每个值都可以是一个列表

product = {}
for col in range(sheet.ncols):
    values = []
    for row in range(1, sheet.nrows):
        values.append(sheet.cell(row, col).value)
    product[sheet.cell(0, col)] = values
这将允许您通过列标签访问任何列的值列表

> print product['B']
> [1, 4, 2, 6, 7]

编辑:编辑后,从解析行改为解析列。

product[k,1]
更改为
product[k][1]
您可以使用字典来完成此操作,请参见:@Kathikr现在我正在将列表索引从范围中删除andrea他/她不是已经在该范围中填充了列表吗?我需要基本上填充我的列表,我不知道它需要多长时间,你想做什么,似乎它会工作与一些调整你的解析是向后的,因为我想做什么。。。我想分析column1中的每一行,然后是column2中的每一行,您正在分析第1行中的每一列,依此类推。。。我尝试了以下范围内列(sheet.ncols)的代码:范围内行(sheet.nrows)的值=[]:值.append(sheet.cell(row,col.value)产品[col]=values打印产品[1],当我打印产品[1]时,我得到了一个奇怪的结果:[u'B',3.0,4.0]我认为value.append只适用于int,所以它告诉我u'B'是一个字符串?很抱歉,格式太糟糕了,我无法在这个评论框中找到正确的格式。不,这很好。字符串开头的“u”仅表示它是unicode字符串。我将添加一个编辑以交换解析方式。我当前的代码段假定您不希望标签值作为列信息中的值之一。