python列表的累积乘积

时间:2019-07-18 08:20:42

标签: python list operands

我有以下列表:

l = [1, 2, 3, 4, 5, 6]

我想将第一个元素乘以9(1*9)=9,然后将所有后续项乘以上一个乘法的结果。看到以下输出:

[9, 18, 54, 216, 1080, 6480]

请帮忙编写代码吗?

1 个答案:

答案 0 :(得分:1)

您可以更新列表中的第一项,然后将itertools.accumulateoperator.mul结合使用以获取其值的累积乘积:

from operator import mul
from itertools import accumulate

l = [1, 2, 3, 4, 5, 6]

l[0]*=9
list(accumulate(l, mul))
# [9, 18, 54, 216, 1080, 6480]