项目场景:
需求:快速实现一个列表数据的叠加,跌乘等操作。
问题描述
代码如下
# coding=utf-8
# 作者:Administrator
# 创建时间:2022 2022/5/9 9:32
# IDE:PyCharm
# 描述:多个可迭代对象构建成一个新的可迭代对象
import operator
from itertools import accumulate
# exp1 :
list1 = [1, 2, 3, 4, 3]
print(list(accumulate(list1))) # 默认是叠加的操作[1, 3, 6, 10, 13]
print(list(accumulate(list1, min))) # 返回当前项的最小值 [1, 1, 1, 1, 1]
print(list(accumulate(list1, max))) # 返回当前项的最大值[1, 2, 3, 4, 4]
print(list(accumulate(list1, operator.mul))) # 叠乘的操作[1, 2, 6, 24, 72] ,操作的内容就是[1,1*2,1*2*3,1*2*3*4,1*2*3*4*3]
print(list(accumulate(list1, operator.add))) # 叠加
print(operator.mul(2000000000000000000000000,300000000000000000000000))# 计算两个数值的乘积 600000000000000000000000000000000000000000000000
解决方案:
强大而有用的工具内置迭代工具 itertools - accumulate【叠加,叠乘等快速操作】,可以让你的代码简单,可读性强