-3
需要一些幫助我的代碼,基本上我有一個包含列表詞典:遍歷詞典列表,創建詞典的新列表
例如
my_list = [
{'trans' : 50,'portfolio' : ABC},
{'trans' : 30,'portfolio' : XYZ},
{'trans' : 20, 'portfolio : ABC},
{'trans' : -40, 'portfolio : XYZ}
]
我想通過這個列表循環的字典,創建一個新的字典清單,其中的關鍵是'投資組合'和價值是一個字典,是根據條件更新。例如,新的名單是這樣的:
new_list = [
{ABC : [BUY : 70, SELL : 0]},
{XYZ : [BUY : 30 , SELL : -40]}
]
***請注意,ABC值 - > [求購]是我的「移植」> 0,如果沒有賣出一套的總和爲0,XYZ - >買入是30的總和只是本身,現在已填充賣出
這裏是我到目前爲止,我知道錯了,但失去了就沒怎麼把它改寫
from collections import defaultdict
buy = 0
sell = 0
new_dict = defaultdict(lamba: {'BUY' :0,'SELL' : 0})
for row in my_list:
if row['tran'] > 0:
buy += row['tran']
update = {'BUY': buy}
else:
sell += row['tran']
update = {'SELL' : sell}
new_dict[row['portfolio']] = update
正如你可以看到,無論「投資組合」如何,我都會繼續增加買入/賣出,但是我希望他們僅在我的新字典中增加投資組合(關鍵字)關於'tran'的if/else邏輯。從上面的邏輯,我的業績低於,這是不正確
new_list = [
{ABC : {BUY : 100, SELL : 0}},
{XYZ : {BUY : 100, SELL : -40}}
]
你給的代碼樣本上到處是錯別字。它們甚至在語法上都不合法。請在尋求邏輯幫助之前修正基本知識。 – ShadowRanger