字典中的值和键之间的计算

时间:2018-12-16 12:47:06

标签: python python-3.x dictionary finance

我正在尝试在字典值及其各自的键之间进行计算。

dict_cashflows = {0:-10000, 1: 500, 2: 1500, 10: 10000} rate=0.06

例如,我想对上述字典中的现金流量进行折现。使用字典键对值进行折算很重要,因此我不需要在键之间填充空白。

对于字典中的每一对,计算应为:

value/((1+rate)**key)

如有任何疑问,请随时提问。 预先感谢,

2 个答案:

答案 0 :(得分:2)

您可以仅对键进行迭代,也可以对两个键进行迭代:

dict_cashflows = {0:-10000, 1: 500, 2: 1500, 10: 10000}
rate=0.06
cashflow = {k : dict_cashflows[k] / (1.+rate)**k for k in dict_cashflows.keys()} #building a new dict from iterating over keys
print(cashflow)
cashflow2 = {k : v / (1.+rate)**k for k,v in dict_cashflows.items()} #building a new dict while iterating on both
print(cashflow2)

答案 1 :(得分:0)

所以,这就是我发现的方法:

dict_cashflows = {0:-10000, 1: 500, 2: 1500, 10: 10000}

   `def NPV_dict(dictcfs,rate=0.06):
    npv=0.0
    periods=list(dictcfs.keys())
    cfs=list(dictcfs.values())
    for i in range(len(dict_cashflows)):
        calc=cfs[i]/((1+rate)**(periods[i]))
        npv+=calc    
    return npv`