背景
pythonで三次元配列をcsv形式で保存したものを他のプログラムから読み出しかたがわかりません。
二次元配列の場合はうまくいくのですが、三次元及びそれ以上になるとできません。
例えば、
python
1# aの保存 2a = [[[1,2],[3,4],[5,6]],[[7,8],[9,10],[11,12]]] 3 4with open('a.csv', 'w') as file: 5 writer = csv.writer(file) 6 writer.writerows(a) 7
上のコードはa
をcsv形式で保存しています。
問題はcsvとして保存したa.csv
を他のプログラムからリストとして取り出すことになります。
試したこと
python
1import csv 2 3path = 'a.csv' 4 5with open(path) as file: 6 reader = csv.reader(file) 7 l = [] 8 for row in reader: 9 l.append(row) 10 11print(l) 12>>> [['[1, 2]', '[3, 4]', '[5, 6]'], ['[7, 8]', '[9, 10]', '[11, 12]']] 13print(l[0]) 14>>> ['[1, 2]', '[3, 4]', '[5, 6]'] 15print(l[0][1]) 16>>> [3,4] 17print(l[0][1][0]) 18>>> [
ここでl
を三次元配列として表示させたいです。print
を実行してみると、l[0]
はリストですが、l[0][1]
はリストではなく、string
となってしまいます。そのため、list[0][1][0]
が[
と表示されてしまい、3
が読み出せません。つまり、l
は三次元配列ではなく、二次元配列になっているようです。
これをlist[0][1][0]
が3
と読み出すにはどうすればいいでしょうか?
回答4件
あなたの回答
tips
プレビュー