解答例_3_7

練習問題_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])
タイトルとURLをコピーしました