如果嵌套的 python 字典具有相同的鍵,我想更改它們的值。我的原始字典包含幾個不同長度的嵌套字典。如果嵌套 dict 與前一個嵌套 dict 具有相同的鍵,則應將前一個鍵的值添加到當前鍵的值。這基本上是將值堆疊在一起。為了更好地理解:
ID 為 2 的嵌套 dict 包含一對:{525: 6.8} 下一個 dict 也包含鍵 525,該鍵 ({525: 13.6}) 的值應為 6.8 6.8 = 13.6。另一個鍵為 525 的 dict 的值應為 13.6 6.8 = 20.4 ({525: 20.4})。
這是我的字典:
{2: {510: 8.5, 525: 6.8, 540: 9.5}, 3: {525: 6.8, 540: 9.5}, 4: {525: 6.8, 540: 9.5, 570: 8.7, 585: 10.7, 600: 10.2}, 7: {600: 10.2, 615: 10.1}
這是轉換后的樣子:
{2: {510: 8.5, 525: 6.8, 540: 9.5}, 3: {525: 13.6, 540: 19}, 4: {525: 20.4, 540: 28.5, 570: 8.7, 585: 10.7, 600: 10.2}, 7: {600: 20.4, 615: 10.1}}
我已經嘗試遍歷嵌套的字典并將值寫入串列。然后將值添加到下一個字典。但最后我沒有達到我的目標。
有人知道如何解決這個問題嗎?
uj5u.com熱心網友回復:
您可以使用 a 跟蹤您之前看到的鍵值對defaultdict(如果訪問尚未看到的鍵,則回傳 0)。對于內部字典中的每個鍵,添加上次看到時的鍵值。然后,更新 以defaultdict使“上次看到的”值是當前值:
from collections import defaultdict
previous_sums = defaultdict(int)
for key, value in data.items():
for inner_key in value:
value[inner_key] = previous_sums[inner_key]
previous_sums[inner_key] = value[inner_key]
print(data)
uj5u.com熱心網友回復:
如果您使用.get()已經提供功能以避免丟失鍵的字典方法,則可以避免使用 defaultdict(并因此匯入庫):
previous_sums = dict()
for key, value in data.items():
for inner_key in value:
value[inner_key] = previous_sums.get(inner_key, 0)
previous_sums[inner_key] = value[inner_key]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/469277.html
