[ list1 + list2]
でなく
[list1, list2]
として、2次元配列 (行列) にしてやれば、
[x][y] の位置の要素を [y][x] にしてやる (行列の転置操作)ことで実現できます。
また、 writerows の一行で 2次元配列をすべて出力できます。
mat.py
python3
1import csv
2
3list1 = [1,2,3,"",45]
4list2 = [4,"",6,89,""]
5
6mat = [list1, list2]
7mat_t = [[mat[y][x] for y in range(2)] for x in range(5)]
8
9out_path = "out.csv"
10
11with open(out_path, 'w') as f:
12 writer = csv.writer(f)
13 writer.writerows(mat_t)
実行例
zip 関数をつかったり、 numpy で行列操作しても同じ結果を得ることができます。
参考情報
- Pythonリスト型の二次元配列の行と列を入れ替える(転置)
https://note.nkmk.me/python-list-transpose/
- Pythonでcsvから行方向のデータを読み込みたい
https://teratail.com/questions/138897
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/25 08:32