Python变量列表人口

时间:2013-06-12 14:03:12

标签: python list dictionary indexing populate

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

我想将数据放入2D列表

[[A,1,2...],[B,2,3...],[C,5,6...]]

其中A,B,C是col标题,数字是该列中的行

现在我正在使用它来测试这是否会起作用所以我知道代码不能完全按照我上面说的那样做

#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文件中有多少行 我听说过字典,但从我读过的内容来看,我不认为那些对我来说是最好的选择,因为它们更“关键”“价值”而且我有一个“关键”的多个值

1 个答案:

答案 0 :(得分:2)

字典对你有效,因为每个值都可以是一个列表。

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]

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