python itertools_Python之itertools库
自己在做深度学习项目时,看到很多的大佬使用这个库,后来感觉真的使用这个库自己的代码量会减少很多,所以整理一下啦~~LeetCode这两天会接着开更,前几天忙着项目和考试了,哈哈,太烦了~~有很多需要整理的东西~
使用方法:import itertools
官方文档:9.7. itertools - Functions creating iterators for efficient looping - Python 2.7.15 documentationdocs.python.org
一、无限迭代器--Infinite Iterators
itertools.count(start=0,step=1)# count(10) --> 10 11 12 13 14 ...
# count(2.5, 0.5) -> 2.5 3.0 3.5 ...
itertools.cycle(iterable)# cycle('ABCD') --> A B C D A B C D A B C D ...
itertools.repeat(object[, times])# repeat(10, 3) --> 10 10 10
二、处理输入序列迭代器
itertools.chain(*iterables) : 从多个迭代器转化为一个# chain('ABC', 'DEF') --> A B C D E F
itertools.compress(data, selectors) : 筛选输入序列# compress('ABCDEF', [1,0,1,0,1,1]) --> A C E F
itertools.groupby(iterable[, key]) : 返回一个产生按照key进行分组后的值集合的迭代器.# [k for k, g in groupby('AAAABBBCCDAABBB')] --> A B C D A B
# [list(g) for k, g in groupby('AAAABBBCCD')] --> AAAA BBB CC D
itertools.ifilter(predicate, iterable) :当测试函数为True的时候返回该值,与dropwhile不同# ifilter(lambda x: x%2, range(10)) --> 1 3 5 7 9
itertools.ifilterfalse(predicate, iterable)# ifilterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8
itertools.islice(iterable, start, stop[, step])# islice('ABCDEFG', 2) --> A B
# islice('ABCDEFG', 2, 4) --> C D
# islice('ABCDEFG', 2, None) --> C D E F G
# islice('ABCDEFG', 0, None, 2) --> A C E G
itertools.imap(function, *iterables) : 类似于map函数# imap(pow, (2,3,10), (5,2,3)) --> 32 9 1000
itertools.starmap(function, iterable)# starmap(pow, [(2,5), (3,2), (10,3)]) --> 32 9 1000
itertools.takewhile(predicate, iterable) :与ifilter不同,这函数从序列头开始执行,只要遇到predicate计算为false, 那么迭代就停止# takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4
itertools.dropwhile(predicate, iterable) :与ifilterfalse不同,这函数从序列头开始执行,只要遇到predicate计算为false, 那么迭代就停止, 与上面的takewhile互为相反数# takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4
itertools.izip(*iterables) : 返回一个合并了多个迭代器为一个元组的迭代器. 它类似于内置函数zip(), 只是它返回的是一个迭代器而不是一个列表# izip('ABCD', 'xy') --> Ax By
itertools.izip_longest(*iterables[, fillvalue])# izip_longest('ABCD', 'xy', fillvalue='-') --> Ax By C- D-
三、组合生成器
itertools.product(*iterables[, repeat]) :repeat表示这种乘积的重复次数# product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
# product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111
itertools.permutations(iterable[, r]) :进行排列# permutations('ABCD', 2) --> AB AC AD BA BC BD CA CB CD DA DB DC
# permutations(range(3)) --> 012 021 102 120 201 210
itertools.combinations(iterable, r) :进行排列,但是最后生成的没有重复的# combinations('ABCD', 2) --> AB AC AD BC BD CD
# combinations(range(4), 3) --> 012 013 023 123
itertools.combinations_with_replacement(iterable, r):带重复,含有本身# combinations_with_replacement('ABC', 2) --> AA AB AC BB BC CC
python itertools_Python之itertools库相关推荐
- Python笔记:itertools库简介
Python笔记:itertools库简介 1. itertools库是什么 2. itertools库函数简介 1. 元素迭代相关 1. count 2. cycle 3. repeat 2. 排列 ...
- Python编程:itertools库排列组合
itertools库包含: 无限迭代器 有限序列处理 排列组合 range对象 # 添加函数说明 def print_info(obj: "iter object") -> ...
- python itertools_python之itertools
Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数. count 创建一个迭代器,生成从n开始的连续整数,如果忽略n,则从0开始计算(注意:此迭代器不支持长整数) 如果超出 ...
- Python itertools库详细教程
前言 库的学习地址:https://pymotw.com/2/itertools/ 库的官网地址:https://docs.python.org/2/library/itertools.html 在P ...
- itertools库常用高效迭代器一览表,帮你快速实现数据的排列组合【python】
itertools库常用高效迭代器一览表,帮你快速实现数据的排列组合 文档: https://docs.python.org/zh-cn/3/library/itertools.html iterto ...
- python中的迭代库
python中的迭代库为itertools,如果需要输出详细,需要使用类型工厂函数,如list,tuple将结果转换 itertools.product:product(A,B) 相当于((x, y) ...
- itertools库
前言 最近事情不是很多,想写一些技术文章分享给大家,同时也对自己一段时间来碎片化接受的知识进行一下梳理,所谓写清楚才能说清楚,说清楚才能想清楚,就是这个道理了. 很多人都致力于把Python代码写得更 ...
- 这段代码很Pythonic | 相见恨晚的 itertools 库
前言 最近事情不是很多,想写一些技术文章分享给大家,同时也对自己一段时间来碎片化接受的知识进行一下梳理,所谓写清楚才能说清楚,说清楚才能想清楚,就是这个道理了. 很多人都致力于把Python代码写得更 ...
- python语言的标准库有哪些,python标准库函数有哪些
PyFlux库函数是什么? PyFlux是Python编程语言的开源时间序列库.PyFlux是Python中为处理时间序列问题而创建的开源库. 该库有一系列极好的时间序列模型,包括但不限于 ARIMA ...
最新文章
- asp.net 学习笔记 代码块标记
- 定时备份FTP+Mysql到云服务器
- 如何在面试中介绍自己的项目经验,很重要!
- 用Go语言建立一个简单的区块链part1:基本原型
- 14招保你ERP选型成功
- 使用js如何获取treeview控件的当前选中的节点
- CF1253E Antenna Coverage
- 隐藏画质代码_和平精英120帧率代码是什么?隐藏的120帧率代码更改方法技巧
- ChaiNext:过去24小时大盘震荡调整
- Java多线程 5 多线程其他知识简要介绍
- ZPCategory
- h5离线缓存+sessionstroage做 离线网页
- 2016链家大数据楼市半年报
- 阳明先生固天纵英才矣《王阳明全集》作者: 王守仁
- HTML5期末大作业:旅游网页设计与实现——旅游风景区网站HTML+CSS+JavaScript 景点静态网页设计 学生DW静态网页设计
- 2021-2027全球与中国巡航型摩托车市场现状及未来发展趋势
- Rerun the EDA Netlist Writer
- Comparable 和 Comparator 比较器
- 合工大计算机专业考研难度,合工大计算机考研经验分享
- vhdl7我学习得第一个fpga项目——倒计时显示
热门文章
- js字符串中换行符不起作用如何解决
- Saltstack之Grains组件
- 【MySQL】mysql | 解决navicat连接mysql报错1129
- Windows11右键菜单改回Windows10经典右键菜单方法
- 【Unity UI】实时得分等UI的显示
- 创新案例 | Web3典范BrainTrust如何打造DAO增长飞轮3年扩张50倍
- 基于Qt的局域网即时通信系统设计与实现(提供各种版本的源代码)
- 将hive数据库中的TBLS表导出到HDFS之上
- k8s入门之虚拟化技术基本概念
- 2021-12-11 WPF面试题 WPF中的xmlns 和xmlns:x有什么区别?