我想創建一個總結另一個字典的字典。我希望summary_dict僅在關鍵字與details_dict中的「父」值相匹配時更新。我寫的東西似乎沒有像我期望的那樣訪問summary_dict。打印語句顯示它繼續附加到循環中的第一個迭代,而不是從summary_dict中獲取正確的值。Python字典在循環中沒有像預期的那樣更新
detail_dict = {'a123': {"data": [1, 2, 3, 4], "parent": "a"},
'a124': {"data": [1, 2, 3, 4, 5], "parent": "a"},
'b123': {"data": [1, 2, 3], "parent": "b"},
'b124': {"data": [1], "parent": "b"}}
summary_dict = dict.fromkeys(["a", "b"], {"data": [],
"data_len": []})
for k, v in detail_dict.iteritems():
summary_dict[v['parent']]["data"].append(v["data"])
summary_dict[v['parent']]["data_len"].append(len(v["data"]))
print "\nMy value is "
print v
print "\nMy summary dictionary now looks like:"
print summary_dict[v['parent']]
得到的字典,我想的是:
{"a": {"data": [[1, 2, 3, 4], [1, 2, 3, 4, 5]],
"data_len": [4, 5]},
"b": {"data": [[1, 2, 3], [1]],
"data_len": [3, 1]}}
非常感謝!我從來沒有想過自己制定出這個陷阱。我認爲這是他們肯定的方式,我正在循環中調用它 – LoveMeow