python中的对象实例混淆

时间:2014-09-21 11:10:06

标签: python oop object instance

您好我正在尝试操作csv文件,如下所示

import csv
data=csv.reader(open('data.csv', 'rb'))
a= [row for row in data]
print a

代码的输出是(以逗号为单位的行 - >以列表格式显示):

 [['aaaaa', '1234234'], ['bbbb', '2343536'], ['cccc', '5675675'], ['dddd', '2344234'],    ['eeee', '5435324'], ['fffffff', '4353442']]

当我使用

时,我将获得空值
print [row for row in data] 

我会帮助你了解这种困惑。谢谢

1 个答案:

答案 0 :(得分:0)

csv.reader返回一个迭代器,它只适用于一次传递数据。你可能试图两次迭代data;第二次,interator中没有内容,所以

print [row for row in data] 

打印一个空列表。

如果您想多次迭代data并拥有足够的内存,可以将data转换为列表:

data = list(csv.reader(open('data.csv', 'rb')))

如果内存不足,则必须再次解析CSV。