Skip to content

2023 10 16

2 重配列の 回転操作

右 90 度回転

list(zip(*S[::-1])) のようにすると 右 90 度回転した配列が得られる。

S = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(S)  # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(S[::-1])  # [[7, 8, 9], [4, 5, 6], [1, 2, 3]]

print(list(zip(*S[::-1])))  # [(7, 4, 1), (8, 5, 2), (9, 6, 3)]

左 90 度回転

list(zip(*S[::]))[::-1] のようにすると左 90 度回転した配列が得られる.

S = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(S)  # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(S[::])  # [[7, 8, 9], [4, 5, 6], [1, 2, 3]]

print(list(zip(*S))[::-1])  # [(3, 6, 9), (2, 5, 8), (1, 4, 7)]

行と列の入れ替え

S = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(S)  # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(*S)  # [1, 2, 3] [4, 5, 6] [7, 8, 9]

print(list(zip(*S)))  # [(1, 4, 7), (2, 5, 8), (3, 6, 9)]