作者ek0519 (new life)
看板Python
标题[问题] dict 在回圈里 update的问题
时间Fri Aug 5 17:08:41 2016
原始码
subclass_data = {}
transaction_info_subclass = {}
cart_subclass_temp = {}
cart_items = {
147: [
{'object_id': 8022, 'categorysub': 147, },
{'object_id': 8021, 'categorysub': 147, }
],
148: [ {'object_id': 8023, 'categorysub': 148, } ]
}
cart_subclass =[147, 148]
for subclass in cart_subclass:
cart_subclass_temp['items'] = cart_items[subclass]
transaction_info_subclass = cart_subclass_temp
print (transaction_info_subclass) # 1
subclass_data[subclass] = transaction_info_subclass # 新增字典
print (subclass_data) # 2
输出为
第一个回圈的 1
{'items': [{'categorysub': 147, 'object_id': 8022},
{'categorysub': 147, 'object_id': 8021}]}
第一个回圈的 2
{147: {'items': [{'categorysub': 147, 'object_id': 8022},
{'categorysub': 147, 'object_id': 8021}]}}
第二个回圈的 1
{'items': [{'categorysub': 148, 'object_id': 8023}]}
第二个回圈的 2
{147: {'items': [{'categorysub': 148, 'object_id': 8023}]},
148: {'items': [{'categorysub': 148, 'object_id': 8023}]}}
不知道为何 第二回圈 # 新增字典的时候 会把里面原有的 key 147 对应的 'items'
一起改成 key 148 对应的 'items'(value)
之前也用过dict update的方式也是一样,还请教一下有人有其他解法没有
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.135.157.207
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1470388123.A.63C.html
1F:→ alibuda174: 把cart_subclass_temp = {} 移入回圈内 08/05 17:23
2F:推 Yshuan: 1F正确 Dict一直是同一个 所以你的2内items都是那个Dict 08/05 19:19
3F:→ ek0519: 太感谢了 T_T 写购物车看到眼花 08/06 21:27