【问题标题】:Issue about dict computation关于dict计算的问题
【发布时间】:2021-07-06 16:26:07
【问题描述】:

我需要使用两个字典来计算损益,但我不知道我在哪里做错了以及如何使用 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' 对象不可调用

the screenshot is here

【问题讨论】:

  • portfolio 是您的字典,您不能使用 portfolio(value) 调用它。请改用value["strike"]value["volume"]

标签: python dictionary finance computation


【解决方案1】:

我不确定这是不是你要找的东西

for key in portfolio.keys():
    pl += (market[key] - portfolio[key]["strike"]) * portfolio[key]["volume"]

【讨论】:

    【解决方案2】:

    您错误地访问了您的dicts。

    你的意思是:

    for key, value in portfolio.items():
        pl += (market[key] - (value['strike'])) * (value['volume'])
       
    

    【讨论】:

      猜你喜欢
      • 2014-06-22
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      • 2019-11-22
      • 2020-03-09
      • 2020-07-31
      • 1970-01-01
      相关资源
      最近更新 更多