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

2024-06-16 15:16:35 发布

您现在位置: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)

但我看到结果不正确,有什么想法吗?你知道吗


Tags: 函数in列表forvaluecashstartperiod
2条回答

您还可以使用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))

请注意,此解决方案使用Generator Expression。你知道吗

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

相关问题 更多 >