2017-10-02 5 views
-2

私はPython上で実際に新しいです。試験コードで、私は奇妙な何かを見つけたpython:リストにdictを追加する問題

私のコードです。

cat_log = [] 
container = {} 
for index in range(10) : 
    container["idx"] = index 
    cat_log.append(container) 
print(cat_log) 

私はこのような結果たい:[{ 'IDX':0}、{ 'IDX':1}、{ 'IDX':2}、{ 'IDX':3}]を。 しかし、私のコードはこの結果を出力しません。 [{idx ':3}、{' idx ':3}、{' idx ':3}] これはなぜ起こったのでしょうか?何か正しい考えを見つけることはできません。 何が間違っていて、なぜですか?

+1

それは動作しません。辞書は同じ値の複数のキーをサポートしていません。 –

+0

申し訳ありませんが、間違った結果を投稿しました。 –

+2

'contains = container'は新しいdictを作成しません。 – user2357112

答えて

0

コンテナを追加するときはコピーを作成しないので、同じdictへの参照を何度も繰り返し追加しています。あなたは辞書を突然変異させており、同じキーの複数の値を辞書に入れておくことはできません。idxを毎回現在のインデックスで上書きしています。

代わりに、各繰り返しごとに新しい辞書を追加してください。例:

cat_log = [] 
for index in range(10) : 
    cat_log.append({"idx": index}) 
print(cat_log) 
+0

あなたの考えは良いです。ありがとう –

関連する問題