ウニ’s blog

勉強した結果を書いていきます

【Python3】2次元リストの初期化はヤバイ

2次元リストの初期化は以下のようにやること。1千万人ぐらい同じこと書いてそうですが。

正常コード

my_list = [[0 for i in range(2)] for j in range(2)]
my_list[0][1] = 1
print(my_list) # [[0, 1], [0, 0]]


OKそうで実は駄目なコード

my_list = [[0]*2] *2
my_list[0][1] = 1
print(my_list) # [[0, 1], [0, 1]]
""" 内側のリストは同じオブジェクトになっている!以降の処理は破滅だ..."""

リストの初期化は[0]*2でいけるのか!Python最高

2次元リストの初期化でPythonビギナーが全員ハマル

→怒りを伴いblogを更新する

までがセットの流れがあるわ。こんな流れはいやだあ!

参考サイト

qiita.com