问题描述
我需要使用两个字典来计算盈亏,但我不知道我做错了什么以及如何使用python dicts进行计算。
我需要使用公式 (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'])