[問題] dict 在迴圈裡 update的問題

看板Python作者 (new life)時間9年前 (2016/08/05 17:08), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
原始碼 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

08/05 17:23, , 1F
把cart_subclass_temp = {} 移入迴圈內
08/05 17:23, 1F

08/05 19:19, , 2F
1F正確 Dict一直是同一個 所以你的2內items都是那個Dict
08/05 19:19, 2F

08/06 21:27, , 3F
太感謝了 T_T 寫購物車看到眼花
08/06 21:27, 3F
文章代碼(AID): #1Nf5UROy (Python)