2015年3月29日日曜日

Pythonで2次元配列を初期化するときのアレ

備忘録として。

Web上でよく見かける、Pythonで2次元配列を初期化する際のtipsは以下のようなものかと思います。

# N x M.
# ダメな例
ng_list = [[0]*M]*N

# 良い例
ok_list = [[0 for j in range(M)] for i in range(N)]

2次元以上にも応用が効くので全く問題ないのですが、推奨されている方も内包表記がネストしていてなんとなくモヤっとします。
てことで思いついた記法を試したら問題なさそうだったので、一応晒しておきます。
ツッコミ歓迎なので、気になる点がありましたらご指摘ください。

# N x M.
my_list = [[0] * M for i in range(N)]

0 件のコメント:

コメントを投稿