【发布时间】:2016-04-12 11:07:47
【问题描述】:
我正在尝试从 Python 2.6 中的 CSV 对象构造两个简单的列表。在我所有的测试中,第二个生成的列表总是返回为空(第一个生成的列表返回得很好。)就好像第二个列表理解在第一个完成之前开始。我可以让这段代码按预期运行的唯一方法是将 CSV 数据复制到它自己的列表中,然后迭代复制——这很好,但似乎效率低下。
我被难住了。
可疑代码:
import csv
data_source = '/charts.csv'
final_data = []
x_obs1 = []
y_obs1 = []
x_obs2 = []
y_obs2 = []
data_file = open(data_source, "r")
final_data = csv.reader(data_file, delimiter=',')
[(x_obs1.append(item[0]), y_obs1.append(item[1])) for item in final_data]
[(x_obs2.append(item[0]), y_obs2.append(item[2])) for item in final_data]
data_file.close()
print y_obs2
返回:[]
这按预期工作:
import csv
data_source = '/charts.csv'
final_data = []
x_obs1 = []
y_obs1 = []
x_obs2 = []
y_obs2 = []
data_file = open(data_source, "r")
csv_data = csv.reader(data_file, delimiter=',')
[final_data.append(item) for item in csv_data]
data_file.close()
[(x_obs1.append(item[0]), y_obs1.append(item[1])) for item in final_data]
[(x_obs2.append(item[0]), y_obs2.append(item[2])) for item in final_data]
print y_obs2
返回:['Barometric Pressure Normal', '30', '30', '30', '30', '30'....
我错过了什么?任何见解将不胜感激。
【问题讨论】:
标签: python csv list-comprehension python-2.6