data = [['O', 'A', 'B', 'C', 'D', 'E', 'F'], ['P', 'A11', 'A12', 'A13', 'A14', 'A15', 'A16'], ['Q', 'A21', 'A22', 'A23', 'A24', 'A25', 'A26'], ['R', 'A31', 'A32', 'A33', 'A34', 'A35', 'A36']] のとき、 data2 = list(map(list, zip(*data))) とするとできた。 data2 = [['O', 'P', 'Q', 'R'], ['A', 'A11', 'A21', 'A31'], ['B', 'A12', 'A22', 'A32'], ['C', 'A13', 'A23', 'A33'], ['D', 'A14', 'A24', 'A34'], ['E', 'A15', 'A25', 'A35'], ['F', 'A16', 'A26', 'A36']]
参照: http://asiagohan.hatenablog.com/entry/2015/05/08/170715
こちらのやり方もできた。
http://lightson.dip.jp/blog/seko/2830
def invert_lst(lst): col = len(lst[0]) row = len(lst) inv = [] for i in range(col): l = [] for j in range(row): l.append('') inv.append(l) for i in range(row): for j in range(col): inv[j][i] = lst[i][j] return inv lst = [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]] print invert_lst(lst) >>>[[1, 1, 1, 1, 1], [2, 2, 2, 2, 2], [3, 3, 3, 3, 3]]
0 件のコメント:
コメントを投稿