Python でリストを転置する
"Python でリストを転置する" についてのメモです。
要点
- 2次元のリストを展開して
zip()
すると、転置することができる。
>>> aList = [[11, 12, 13], [21, 22, 23]] >>> list(zip(*aList)) [(11, 21), (12, 22), (13, 23)]
原理
- 関数に複数の引数を渡す時、リスト名に
*
をつけると、展開され各要素が引数として渡される。
>>> aList = [[11, 12], [21, 22]] >>> '1個めは {} で、2個めは {} です。'.format(*aList) '1個めは [11, 12] で、2個めは [21, 22] です。'
zip()
関数に複数のリスト (イテラブル) を渡すと、各リストの i 番目の要素同士をタプルにして返すイテレータとなる。
>>> listA = ['a1', 'a2', 'a3'] >>> listB = ['b1', 'b2', 'b3'] >>> list(zip(listA, listB)) [('a1', 'b1'), ('a2', 'b2'), ('a3', 'b3')]