我需要计算利润&使用两个字典会造成损失,但我不知道哪里做错了,也不知道如何使用python字典进行计算。我需要使用公式(market price - strike price) * volume
。
这是我的代码:
portfolio = {
"AAPL": {
"volume": 10,
"strike": 154.12
},
"GOOG": {
"volume": 2,
"strike": 812.56
},
"TSLA": {
"volume": 12,
"strike": 342.12
},
"FB": {
"volume": 18,
"strike": 209.0
}
}
market = {
"AAPL": 198.84,
"GOOG": 1217.93,
"TSLA": 267.66,
"FB": 179.06
}
def pl(market, portfolio):
global pl
for key, value in portfolio.items():
pl += (market(value) - (portfolio(value)['strike'])) * (portfolio(value)['volume'])
错误是:
TypeError:"dict"对象不可调用
屏幕截图在这里
我不确定这是否是您想要的
for key in portfolio.keys():
pl += (market[key] - portfolio[key]["strike"]) * portfolio[key]["volume"]
您对dict
的访问不正确。
你的意思是:
for key, value in portfolio.items():
pl += (market[key] - (value['strike'])) * (value['volume'])