Python辞書リストが新しいデータを追加するときに最初に追加されるデータは上書きされます

問題の背景:

Python辞書リストの各項目には、オブジェクトの個別のコピーではなく、各辞書への参照が格納されます。
したがって、新しい辞書が辞書リストに追加されるたびに、元のオブジェクトの内容を変更する代わりに、新しい辞書オブジェクトを使用する必要があります。

間違った操作:

1 t_dict = dict()
 2 t_dict_list = []
 3  
4 t_dict [ ' value ' ] = 1
 5 t_dict [ ' label ' ] = " test1 " 
6  t_dict_list.append(t_dict)
 7  
8 t_dict [ ' value ' ] = 2
 9 t_dict [ ラベル ] = TEST2 
10  t_dict_list.append(t_dict)
 。11  
12れている 回辞書、それを用いた辞書オブジェクト、ビットを変更するの内容のみを添加したがって、これを印刷すると、リストの内容は2番目の変更の内容と同じであることがわかります
14  印刷(t_dict_list)

正しい操作:

= t_dict_list [] 

t_dict = dictの()
t_dict [ ' ' ] =。1 
t_dict [ ' ラベル' ] = " TEST1 " 
t_dict_list.append(t_dict)
印刷(t_dict_list)

t_dict = dictの()  は、新しい辞書オブジェクトの作成 
t_dictを【 ] = 2 
t_dict [ ラベル ] = TEST2 
t_dict_list.append(t_dict)は

新しいデータが新しい辞書オブジェクトを追加するために使用され、従って、コンテンツの一覧を印刷することができ、それぞれの時間は、所望に見出さ内容は一貫した
印刷です(t_dict_list)

 

おすすめ

転載: www.cnblogs.com/jayzhou/p/12735470.html