用python制作多维列表

用python制作多维列表,python,list,Python,List,这个问题可能会在早些时候被问到(至少在主题方面),但我仍然找不到解决我具体问题的方法。基本上,我需要python中的多维数组。以便: 我将能够通过以下方式访问列表中的内容: contenets[no_of_record][record]. 所以我有一个类似于: 101, Mrs. Jones' Math Class, 10100000001, Jones, Barbara, , , , 10100000011, Gutierrez, Kimberly, 2 101, Mrs. Jones'

这个问题可能会在早些时候被问到(至少在主题方面),但我仍然找不到解决我具体问题的方法。基本上,我需要python中的多维数组。以便:

我将能够通过以下方式访问列表中的内容:

contenets[no_of_record][record]. 
所以我有一个类似于:

101, Mrs. Jones' Math Class, 10100000001, Jones, Barbara, , , , 10100000011, Gutierrez, Kimberly, 2
101, Mrs. Jones' Math Class, 10100000001, Jones, Barbara, , , , 10100000013, Mercado, Toby, 1
101, Mrs. Jones' Math Class, 10100000001, Jones, Barbara, , , , 10100000014, Garcia, Lizzie, 1
101, Mrs. Jones' Math Class, 10100000001, Jones, Barbara, , , , 10100000015, Cruz, Alex, 1
现在我必须维护一个多维数组,其中没有任何记录指向行号,记录将是列号

我想要类似的东西:

contents=[][]

for lines in source_file:
                contents[no_of_records][]=lines.rstrip().split(',')
                print contents[no_of_records]
                no_of_records+=1
我确信上面的片段在语法上是错误的,我只是想告诉大家我在搜索什么。谢谢你的帮助


-Sethu

使用单个
列表
,但使用
列表
对象进一步填充它

contents = []
for i, line in enumerate(source_file):
    contents.append(line.rstrip().split(','))
    print contents[i]

不过,看起来您正在解析csv文件。我建议改用模块。

如果您真的想要列表,您可以使用以下方法:

contents = [l.split(',') for l in fh] # fh is a file handle here.

如果您实际使用的是csv文件,那么没有理由不使用
csv
模块。

您也可以使用
dicts
,如果您想使用数字以外的内容作为索引,这可能会更好

contents = []
tmp_rcd = {'classnum': 101, 'classname': "Mrs. Jones' Math Class", ...}
contents.append.tmp.rcd
...
print contents[i]['classname']

从文档的csv示例中,您应该执行以下操作

import csv
rows = []
with open('some.csv', 'rb') as f:
    reader = csv.reader(f)
    for row in reader:
        print row
        rows.append(row)

我建议您不能分配给列表中不存在的索引。这引起了索引器的问题。@g.d.d.c在我再次阅读我的答案后意识到了这一点。已编辑。它是一个csv文件。我很惊讶我没有搜索内置的csv库。谢谢你的提醒!!这本字典听起来很完美。我只是想知道如何使用它。我以前从未使用过它们。如果要将其与
csv
结合使用,可以使用
csv.DictReader
,它可以从第一行获取字段名,也可以自己指定。