Python:accumulate累积函数实战

编程入门 行业动态 更新时间:2024-10-07 12:28:13

Python:accumulate累积<a href=https://www.elefans.com/category/jswz/34/1771370.html style=函数实战"/>

Python:accumulate累积函数实战

简介:accumulate 是内置模块itertools中的一个函数,主要用于生成一个迭代器,该迭代器按照指定的操作对输入的可迭代对象进行累积计算。它返回一个逐步累积的结果序列。

参数说明:iterable, func=None

1、iterable: 可迭代对象,表示要进行累积操作的数据序列。

2、func: 二元操作函数,表示对两个元素进行操作的规则。该函数接受两个参数并返回一个结果。如果未提供该参数,默认使用加法运算进行累积计算。

历史攻略:

Python:heapq模块使用

测试用例:多条件下编写,懒人妙用itertools

Python:filter、map、reduce、zip函数

Python:常见排列组合问题处理

Python高阶:counter、orderedDict、defaultdict、deque、queue简单示例

案例: 与reduce的区别;reduces是将所有的结果全部计算完成,给出最终结果;而accumulate是返回一个逐步累积的结果序列

# -*- coding: utf-8 -*-
# time: 2023/10/22 23:34
# file: accumulate_demo.py
# 公众号: 玩转测试开发
from functools import reduce
from itertools import accumulatearr1 = [i for i in range(1, 5)]
print(arr1)  # [1, 2, 3, 4]# 默认累加
res1 = list(accumulate(arr1))  # [1, 3, 6, 10]
print(res1)def multi(a, b):# 乘法函数return a * b# 传入二元函数,则支持自定义累积方式。如累积乘法
res2 = list(accumulate(arr1, multi))
res3 = list(accumulate(arr1, lambda a, b: a * b))  # 等价于 multi(a, b)
print(res2)
print(res3)# 更多例子
print(list(accumulate(arr1, lambda a, b: a / b)))  # 累积除法
print(list(accumulate(arr1, lambda a, b: a ** b)))  # 累积幂new_list30 = reduce(multi, [1, 2, 3])
new_list31 = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])
new_list32 = reduce(lambda x, y: x + y, ["a1", "b2", "c3"])
print(new_list30)  # 6
print(new_list31)  # 15
print(new_list32)  # a1b2c3

运行结果:

更多推荐

Python:accumulate累积函数实战

本文发布于:2023-12-03 10:48:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1654516.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:函数   实战   Python   accumulate

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!