这个问题可能在早些时候提出过(至少是明智的话题),但我仍然无法找到解决我具体问题的方法。基本上,我需要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
现在我必须维护一个多维数组,其中no_of_record指向行号,记录将是列号。
我想要类似的东西:
contents=[][]
for lines in source_file:
contents[no_of_records][]=lines.rstrip().split(',')
print contents[no_of_records]
no_of_records+=1
我确信上面的代码段在语法上是错误的,我只是想知道我在搜索什么。谢谢你的帮助。
-Sethu
答案 0 :(得分:4)
你应该做的事情
import csv
rows = []
with open('some.csv', 'rb') as f:
reader = csv.reader(f)
for row in reader:
print row
rows.append(row)
答案 1 :(得分:3)
如果你真的想要列表,你可以用它来做:
contents = [l.split(',') for l in fh] # fh is a file handle here.
如果您实际使用的是csv文件,则没有充分的理由不使用csv
模块。
答案 2 :(得分:1)
使用单个list
,但使用list
个对象进一步填充。
contents = []
for i, line in enumerate(source_file):
contents.append(line.rstrip().split(','))
print contents[i]
看起来你正在解析一个csv文件。我建议改为使用csv
模块。
答案 3 :(得分:1)
如果您想为索引使用数字以外的其他内容,您也可以使用dicts
,这可能会更好。
contents = []
tmp_rcd = {'classnum': 101, 'classname': "Mrs. Jones' Math Class", ...}
contents.append.tmp.rcd
...
print contents[i]['classname']