Pythonで初期化をするときに変数とリストで挙動が違う

Pythonで複数の変数を初期化するときに

と書くと全ての変数が0で初期化されます。

しかし、次のように書くこともできます。

この書き方だと1行で書けてコードが縦長にならないメリットがあります。

しかし、この書き方をリストでも行うと

想定外のことが起きます。

次のコードの場合

結果は、

ではなく、

となってしまいます。

list_aからlist_fが同じオブジェクトとして扱われてしまい、格納されているデータが同じになってしまうので注意が必要。

もしくは

と書いて初期化すると想定していた挙動となる。