我有以下列表:
l = [1, 2, 3, 4, 5, 6]
我想将第一个元素乘以9
,(1*9)=9
,然后将所有后续项乘以上一个乘法的结果。看到以下输出:
[9, 18, 54, 216, 1080, 6480]
请帮忙编写代码吗?
答案 0 :(得分:1)
您可以更新列表中的第一项,然后将itertools.accumulate
与operator.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]