私はPython 2.6でCSVオブジェクトから2つの単純なリストを構築しようとしています。すべてのテストで、2番目に生成されたリストは常に空になります(最初に生成されたリストはきれいに戻ります)。2番目のリストの理解が最初のものが終了する前に開始しているかのようです。このコードを期待どおりに実行させるための唯一の方法は、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'....
私は何をしないのですか?どんな洞察力が最も高く評価されるだろう。
美しい。私は、csv.readerオブジェクトが1つの目的には良いことを知らず、疲れてしまいました。あなたは昨日どこにいましたか?どうもありがとう! – DaveL17
大歓迎です!私は似たような問題で頭を何度も悩ましてきたので、本当にうれしいです;) – srowland