花式迭代器:Python3.7的itertools模块

本文介绍了Python3.7的itertools模块,包含无限迭代器如count(), cycle()和repeat(),终止于最短输入的迭代器如accumulate(), chain()等,以及组合生成器如product(), permutations()等。这些工具能帮助开发者更高效地处理迭代任务。" 112127610,10544623,基于开源AUTOSAR的碰撞预警系统设计与实现,"['自动驾驶', '汽车电子', '软件架构', 'AUTOSAR BSW', 'ADAS开发']
摘要由CSDN通过智能技术生成

迭代器模块:itertools

作者:Shawn
python3.7
文档:
https://docs.python.org/3/library/itertools.html
重写基于https://blog.csdn.net/weixin_41084236/article/details/81179704

  • itertools中有许多有意思的功能,使用得当可以节约大量生命。

无限迭代器

count()
itertools.count(start=0,step=1)
  • 返回以start为开头,步长step的值。
>>> for i in itertools.count():
    print(i)

0
1
2
3
4
...
cycle():复读机一号
itertools.cycle(iterable)
  • 保存对象的副本,并无限重复返回每一个元素。
>>> for i in itertools.cycle([2,3,4,5]):
    print(i)

2
3
4
5
2
3
4
5
2
...
repeat():复读机二号
itertools.repeat(object[,times])
  • 重复返回对象[次]。
>>> for i in itertools.repeat('雪碧'):
    print(i)

雪碧
雪碧
雪碧
雪碧
雪碧
...

终止于最短输入的迭代器

accumulate()
itertools.accumulate(iterable[, func])
  • 对iterable对象内的每个元素依次做func运算,更新并输出。
  • func要求为二目运算,详见operator模块
>>> for i in itertools.accumulate([1,2,3,4],operator.add):
    print(i)


1
3
6
10
>>> for i in itertools.accumulate([1,2,3,4],operator.mul):
    print(i)


1
2
6
24
chain()
itertools.chain(*iterables)
  • 将所有输入拼接输出。
>>> a='把你的心'
>>> b=' 我的心'
>>> c=' 串一串'
>>> for i in itertools.chain(a,b,c):
    print(i)


把
你
的
心

我
的
心

串
一
串
chain.from_iterable()
chain.from_iterable(iterable)
  • 将单个iterable中的所有元素拼接输出。
>>> d=['串一株幸运草',' 串一个同心圆']
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值