关于dict计算的问题

问题描述

我需要使用两个字典来计算盈亏,但我不知道我做错了什么以及如何使用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

解决方法

我不确定这是否是您要找的

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'])
   

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...