网站首页 > 技术教程 正文
python itertools是python标准库中的一个模块,提供了一些用于迭代的高效工具,也可以用于排列,组合。
- 生成无限长度计数器
itertools.count(start=0, step=1):从start开始生成无限长度计数器,步长为step
>>> for i in itertools.count(1,2):
... if i > 10:
... break
... print(i)
...
1
3
5
7
9
- 无限迭代元素
itertools.cycle(iterable):生成一个可迭代对象,无限迭代元素
>>> lista = itertools.cycle(['a', 'b', 'c'])
>>> for i in range(5):
... print(next(lista))
...
a
b
c
a
b
- 重复迭代元素
itertools.repeat(element, times=None):重复迭代elements times次,如果times是None,则无限迭代element
>>> for i in itertools.repeat('apple', 3):
... print(i)
...
apple
apple
apple
- 叠加多个迭代器
itertools.chain(iterable1, iterable2, ...):将多个迭代器叠加在一起
>>> list1 = [1, 2, 3]
>>> list2 = ['a', 'b', 'c']
>>> list3 = [True, False]
>>> list(itertools.chain(list1, list2, list3))
[1, 2, 3, 'a', 'b', 'c', True, False]
- 生成指定长度的排列
itertools.permutations(iterable, r=None):生成指定长度的所有排列
>>> list1 = ['a', 'b', 'c']
>>> list(itertools.permutations(list1, 2))
[('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', 'c'), ('c', 'a'), ('c', 'b')]
- 生成指定长度的组合
itertools.combinations(iterable, r=None):生成指定长度的所有组合
>>> list1 = ['a', 'b', 'c']
>>> list(itertools.combinations(list1, 2))
[('a', 'b'), ('a', 'c'), ('b', 'c')]
- 过滤迭代对象
itertools.compress(data, selectors):只有在selectors中对应值为True时,data中的元素才会被保留
data:要过滤的可迭代对象
selectors:一个布尔值的可迭代对象,用于选择是否保留对应位置上的元素
注意:如果selectores较短,那么超出其长度的data元素将会被忽略,如果data较短,那么多余的selectors将会被忽略
>>> data = [1, 2, 3, 4, 5]
>>> selectors = [True, False, True, True, False]
>>> list(itertools.compress(data, selectors))
[1, 3, 4]
# selectores 较短
>>> data = [1, 2, 3, 4, 5]
>>> selectors = [True, False, True]
>>> list(itertools.compress(data, selectors))
[1, 3]
# data 较短
>>> data = [1, 2, 3]
>>> selectors = [True, False, True, True, False]
>>> list(itertools.compress(data, selectors))
[1, 3]
猜你喜欢
- 2024-10-23 工具分享|GitHub的克隆工具Cl0neMast3r,轻松搞定各种测试
- 2024-10-23 推荐 33 个 IDEA 最牛配置,写代码太爽了
- 2024-10-23 Excel开挂之 万能工具箱 解决职场99%的难题
- 2024-10-23 还有这种操作?注册表被锁只能这么解
- 2024-10-23 10个优秀的MySQL管理工具,都是大佬们的珍藏
- 2024-10-23 15款优秀的mysql管理工具与应用程序推荐
- 2024-10-23 西门子MRI技巧之如何测量ADC值(西门子ad_t_tbl指令用法)
- 2024-10-23 项目管理工具-maven的初识(maven项目的基本结构)
- 2024-10-23 Ace-Translate离线机器翻译部署(离线翻译引擎)
- 2024-10-23 轻松搭建自己的工具箱——IT Tools
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)