pythonの辞書型やリスト型の定義の仕方

大したことじゃないですが。

辞書型やリスト型は、定義してから使うことがよくあります。

ListA = []
ListB = list();
DictA = {}
DictB = dict();

沢山の変数を定義する時は、一列に並べて書いた方が省スペースです。

A=[]; B=[]; C=[]; # すべてリスト型

ただ、次のような定義は間違いの始まりです。

A = B = C = []; # 全部イコールでつなげちゃう

ご存知の通り、参照渡しによってA,B,Cは実質同じ領域を参照していますので、これだとA,B,Cいずれかに要素を追加すると、A,B,Cすべてに反映されてしまうので注意です。(Aを数値にしちゃうとかいう変更の時は、B,Cには反映されません)

In [26]: A = B = C = []

In [27]: A.append(1) # 気持ちはAにのみ1を追加

In [28]: A,B,C
Out[28]: ([1], [1], [1]) # 結果は、A,B,Cすべてに1が追加されている

そういえば、pythonはタプルというのもあります。これを使うと、こんなことができます。

In [3]: a,b,c = 1,2,3
In [4]: print a
------> print(a)
1
In [5]: print b
------> print(b)
2
In [6]: print c
------> print(c)
3

じゃあ、こんな定義の仕方もありだよなー。

In [7]: ListA,ListB,DictA,DictB,ListC = [],[],{},{},[]
In [8]: ListA
Out[8]: []
In [9]: DictA
Out[9]: {}

定義の仕方はいろいろ。もっと違うやり方や、綺麗なやり方はあるんですかねぇ??