🍵
競プロ私的スニペット Python3 二次元配列編
任意のサイズの二次元配列を作る
num_rows = 3
num_columns = 4
DEFAULT_VALUE = None
lst = [[DEFAULT_VALUE for _ in range(num_columns)] for _ in range(num_rows)]
# => [[None, None, None, None], [None, None, None, None], [None, None, None, None]]
ある要素を基準に周囲の要素(1つ隣の上下左右斜め)のインデックスを取得する
ある要素を基準に隣接する要素(1つ隣の上下左右)のインデックスを取得する
ある要素を基準に斜めに要素のインデックスを取得していく
転置
from pprint import pprint
grid = [
[2, 2, 2, 7, 8],
[1, 1, 4, 4, 4],
[0, 8, 13, 13, 15],
[4, 5, 5, 5, 11],
[0, 9, 11, 18, 18]
]
pprint(list(zip(*grid)))
"""
出力結果:
[(2, 1, 0, 4, 0),
(2, 1, 8, 5, 9),
(2, 4, 13, 5, 11),
(7, 4, 13, 5, 18),
(8, 4, 15, 11, 18)]
"""
ちなみに転置したものをもう一度転置すると、元の2次元配列に戻る。
Discussion