如何从列表中枚举值,然后求和一个函数?

时间:2019-05-27 15:37:54

标签: python

我正在尝试创建一个使用值和值索引的函数,从1开始将值放入函数中并求和整个列表。

换句话说,我试图获取不相同的现金流量列表的现值,因此必须计算每种现金流量的现值并将它们相加。

这是我尝试过的。

cash = [10,10,10,10, 10, 10, 11, 10]
DiscoutRate = 0.12
    for (period, value) in enumerate(cash, start=1):
        PV = value/((1+DiscountRate)**period)
        print(PV)

但是我发现结果不正确,有什么想法吗?

2 个答案:

答案 0 :(得分:8)

请注意,此解决方案使用Generator Expression

>>> sum(value/((1 + DiscountRate) ** period) for period, value in enumerate(cash, start=1))
50.1287

答案 1 :(得分:0)

您也可以使用python的map函数来实现全面性。

cash = [10,10,10,10, 10, 10, 11, 10]

def get_pv(ele):
    discount_rate = 0.12
    period, value = ele

    return value / ( (1+discount_rate) ** period )

out = list(map(get_pv, enumerate(cash, start=1)))
print(sum(out))