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]: {}
定義の仕方はいろいろ。もっと違うやり方や、綺麗なやり方はあるんですかねぇ??