ファイルは政府の統計情報から適当に取得
https://www.e-stat.go.jp/stat-search/files?page=1&layout=datalist&toukei=00200521&tstat=000001080615&cycle=0&tclass1=000001089055&tclass2=000001089056
# for文で繰り返し
list1=[]
with open("/python/001_01.csv", encoding="cp932") as f:
for line in f:
list1.append(line)
# 内包表記で繰り返し
# list2=[] Dsuke-Kさんのコメント通り、内包では初期化は不用でした
with open("/python/001_01.csv", encoding="cp932") as f:
list2=[line for line in f]
if list1 == list2:
print("同じ")
else:
print("異なる")
結果は"同じ"となった。
for文で繰り返しと内包表記が同じ結果であることを確認
list2=[line for line in f]
はcsvファイルを読み込んだfから一行取り出し、2つ目のlineにセット、それをそのままlineとして、list2にセットしている。
少しわかりずらいので、ちょっと修正。
# for文で繰り返し
# 内包表記で繰り返し
# list2=[] Dsuke-Kさんのコメント通り、内包では初期化は不用でした
with open("/python/001_01.csv", encoding="cp932") as f:
list2=[line+"++add++" for line in f]
ipdb> list2[0]
'1,"平成27年国勢調査人口等基本集計(総務省統計局)","","","","","","","","","","","","","","",""\n++add++'
list2=[line+"++add++" for line in f]
はcsvファイルを読み込んだfから一行取り出し、2つ目のlineにセット、それの後ろに"++add++"を追加してlineとして、list2にセットしている。
こちらのほうがわかりやすい。
普通にファイルを読み込んでリストに入れるだけなら、list2=[line for line in f]で良い。