練習問題_3_7(forの2重化の応用)
1番の解答例です。
ls = [[ 0, 1, 2, 3],
[10, 11, 12, 13],
[20, 21, 22, 23]]
ls_flat_trans = []
for i in range(len(ls[0])):
for row in ls:
ls_flat_trans.append(row[i])
ls_flat_trans
[0, 10, 20, 1, 11, 21, 2, 12, 22, 3, 13, 23]
内側のforループを以下の様に記載することも可能です。
for j in range(len(ls)):
ls_flat_trans.append(ls[j][i])
続いて2番の解答例です。
def trans_2d_list(ls):
ls_trans = []
for i in range(len(ls[0])):
col = []
for row in ls:
col.append(row[i])
ls_trans.append(col)
return ls_trans
trans_2d_list(create_2d_list(3, 4))
[[0, 10, 20], [1, 11, 21], [2, 12, 22], [3, 13, 23]]
1番と同様に内側のforループを1番の様に記載することも可能です。
for j in range(len(ls)):
ly.append(ls[j][i])