Pythonのリストでちょっとハマったのでメモ.
慣れてない人はちょいちょいするらしい.
python,append,リスト,辞書
Pythonで辞書をたくさん作ってそれをリストにまとめて整理しようとしていました.
dict = {} lst = [] for i in ["A","B","C"]: dict[i] = i lst.append(dict) dict.clear() print lst
と書いた場合,気持ち的には
辞書に要素追加→リストに辞書を追加→新しい辞書を作る→リストに追加
みたいなことをしたかったのですが
[{}, {}, {}]
ってなってしまう.(さすがにハマった時はもう少し面倒な処理してたんですよ)
dict = {} lst = [] for i in ["A","B","C"]: dict[i] = i lst.append(dict) dict = {} #dict.clear() print lst
ってしてやれば,ちゃんと
[{'A': 'A'}, {'B': 'B'}, {'C': 'C'}]
って出ます.
これは,appendがdictのポインタをリストに引っ付けているためで,dictをいじれば当然リストの中身の辞書も書き換わります.
まだまだオブジェクト指向がわかっていませんね.