自己在做深度学习项目时,看到很多的大佬使用这个库,后来感觉真的使用这个库自己的代码量会减少很多,所以整理一下啦~~LeetCode这两天会接着开更,前几天忙着项目和考试了,哈哈,太烦了~~有很多需要整理的东西~

使用方法:import itertools

官方文档:9.7. itertools - Functions creating iterators for efficient looping - Python 2.7.15 documentation​docs.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库相关推荐

  1. Python笔记:itertools库简介

    Python笔记:itertools库简介 1. itertools库是什么 2. itertools库函数简介 1. 元素迭代相关 1. count 2. cycle 3. repeat 2. 排列 ...

  2. Python编程:itertools库排列组合

    itertools库包含: 无限迭代器 有限序列处理 排列组合 range对象 # 添加函数说明 def print_info(obj: "iter object") -> ...

  3. python itertools_python之itertools

    Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数. count 创建一个迭代器,生成从n开始的连续整数,如果忽略n,则从0开始计算(注意:此迭代器不支持长整数) 如果超出 ...

  4. Python itertools库详细教程

    前言 库的学习地址:https://pymotw.com/2/itertools/ 库的官网地址:https://docs.python.org/2/library/itertools.html 在P ...

  5. itertools库常用高效迭代器一览表,帮你快速实现数据的排列组合【python】

    itertools库常用高效迭代器一览表,帮你快速实现数据的排列组合 文档: https://docs.python.org/zh-cn/3/library/itertools.html iterto ...

  6. python中的迭代库

    python中的迭代库为itertools,如果需要输出详细,需要使用类型工厂函数,如list,tuple将结果转换 itertools.product:product(A,B) 相当于((x, y) ...

  7. itertools库

    前言 最近事情不是很多,想写一些技术文章分享给大家,同时也对自己一段时间来碎片化接受的知识进行一下梳理,所谓写清楚才能说清楚,说清楚才能想清楚,就是这个道理了. 很多人都致力于把Python代码写得更 ...

  8. 这段代码很Pythonic | 相见恨晚的 itertools 库

    前言 最近事情不是很多,想写一些技术文章分享给大家,同时也对自己一段时间来碎片化接受的知识进行一下梳理,所谓写清楚才能说清楚,说清楚才能想清楚,就是这个道理了. 很多人都致力于把Python代码写得更 ...

  9. python语言的标准库有哪些,python标准库函数有哪些

    PyFlux库函数是什么? PyFlux是Python编程语言的开源时间序列库.PyFlux是Python中为处理时间序列问题而创建的开源库. 该库有一系列极好的时间序列模型,包括但不限于 ARIMA ...

最新文章

  1. asp.net 学习笔记 代码块标记
  2. 定时备份FTP+Mysql到云服务器
  3. 如何在面试中介绍自己的项目经验,很重要!
  4. 用Go语言建立一个简单的区块链part1:基本原型
  5. 14招保你ERP选型成功
  6. 使用js如何获取treeview控件的当前选中的节点
  7. CF1253E Antenna Coverage
  8. 隐藏画质代码_和平精英120帧率代码是什么?隐藏的120帧率代码更改方法技巧
  9. ChaiNext:过去24小时大盘震荡调整
  10. Java多线程 5 多线程其他知识简要介绍
  11. ZPCategory
  12. h5离线缓存+sessionstroage做 离线网页
  13. 2016链家大数据楼市半年报
  14. 阳明先生固天纵英才矣《王阳明全集》作者: 王守仁
  15. HTML5期末大作业:旅游网页设计与实现——旅游风景区网站HTML+CSS+JavaScript 景点静态网页设计 学生DW静态网页设计
  16. 2021-2027全球与中国巡航型摩托车市场现状及未来发展趋势
  17. Rerun the EDA Netlist Writer
  18. Comparable 和 Comparator 比较器
  19. 合工大计算机专业考研难度,合工大计算机考研经验分享
  20. vhdl7我学习得第一个fpga项目——倒计时显示

热门文章

  1. js字符串中换行符不起作用如何解决
  2. Saltstack之Grains组件
  3. 【MySQL】mysql | 解决navicat连接mysql报错1129
  4. Windows11右键菜单改回Windows10经典右键菜单方法
  5. 【Unity UI】实时得分等UI的显示
  6. 创新案例 | Web3典范BrainTrust如何打造DAO增长飞轮3年扩张50倍
  7. 基于Qt的局域网即时通信系统设计与实现(提供各种版本的源代码)
  8. 将hive数据库中的TBLS表导出到HDFS之上
  9. k8s入门之虚拟化技术基本概念
  10. 2021-12-11 WPF面试题 WPF中的xmlns 和xmlns:x有什么区别?