首页 > 解决方案 > 将字典中一个键的值与同一字典中另一个键的值相乘

问题描述

计算股票 X 收益的平均值。以“平均回报:......”的格式显示输出。数字结果具有三位十进制数字。

我尝试通过尝试使用 for 循环迈出第一步,但遇到了一个障碍。请帮忙

"""Prediction of returns of Stock A and Stock B"""


    pred = {'scens': ['very pessimistic', 
                      'pessimistic', 
                      'baseline', 
                      'optimistic', 
                      'very optimistic'],                   # Scenarios of economic conditions 
            'probs': [0.15, 0.2, 0.3, 0.25, 0.1],           # Scenario probabilities
            'stock X': [0.02, 0.07, 0.13, 0.15, 0.18],      # Returns of stock X in each scneario
            'stock Y': [0.06, 0.11, 0.14, 0.19, 0.21]}      # Returns of stock Y in each scenario

标签: pythondictionary

解决方案


这样的东西适合你吗?

"""Prediction of returns of Stock A and Stock B"""


pred = {'scens': ['very pessimistic',
                  'pessimistic',
                  'baseline',
                  'optimistic',
                  'very optimistic'],                   # Scenarios of economic conditions
        'probs': [0.15, 0.2, 0.3, 0.25, 0.1],           # Scenario probabilities
        'stock X': [0.02, 0.07, 0.13, 0.15, 0.18],      # Returns of stock X in each scneario
        'stock Y': [0.06, 0.11, 0.14, 0.19, 0.21]}      # Returns of stock Y in each scenario

mean_return = 0
for index, returns in enumerate(pred['stock X']):
    mean_return += returns * pred['probs'][index]

print(round(mean_return, 2))

结果是0.1115四舍五入到0.11

它应该很容易解释。我使用 enumerate 来同时拥有内容和索引,因此如果您还想在循环中访问字典列表的其他元素,您可以轻松地做到这一点。


推荐阅读