看板 Python 關於我們 聯絡資訊
原始碼 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://www.ptt.cc/bbs/Python/M.1470388123.A.63C.html
alibuda174: 把cart_subclass_temp = {} 移入迴圈內 08/05 17:23
Yshuan: 1F正確 Dict一直是同一個 所以你的2內items都是那個Dict 08/05 19:19
ek0519: 太感謝了 T_T 寫購物車看到眼花 08/06 21:27