python 生成器(四):生成器基础(四)标准库中的生成器函数
os.walk
这个函数在遍历目录树的过程中产出文件名,因此递归搜索文件系统像for 循环那样简单。
用于过滤的生成器函数
模块 | 函数 | 说明 |
itertools |
compress(it, |
并行处理两个可迭代的对象;如果 selector_it 中的元素是真值,产出 it 中对应的元素 |
itertools |
dropwhile(predicate, |
处理 it,跳过 predicate 的计算结果为真值的元 |
filter(predicate, it) |
把 it 中的各个元素传给 predicate,如果 |
|
itertools |
filterfalse(predicate, |
与 filter 函数的作用类似,不过 predicate 的 |
itertools |
islice(it, stop) 或 |
产出 it 的切片,作用类似于 s[:stop] 或 |
itertools |
takewhile(predicate, |
predicate 返回真值时产出对应的元素,然后立 |
表14-2:用于映射的生成器函数
模块 | 函数 | 说明 |
itertools |
accumulate(it, |
产出累积的总和;如果提供了 func,那么把前两个 |
enumerate(iterable, |
产出由两个元素组成的元组,结构是 (index, |
|
map(func, it1, |
把 it 中的各个元素传给func,产出结果;如果传入 |
|
itertools | starmap(func, it) |
把 it 中的各个元素传给 func,产出结果;输入的 |
表14-3:合并多个可迭代对象的生成器函数
模块 | 函数 | 说明 |
itertools | chain(it1, ..., itN) |
先产出 it1 中的所有元素,然后产出 it2 中的 |
itertools | chain.from_iterable(it) |
产出 it 生成的各个可迭代对象中的元素,一个 |
itertools |
product(it1, ..., itN, |
计算笛卡儿积:从输入的各个可迭代对象中获 |
zip(it1, ..., itN) |
并行从输入的各个可迭代对象中获取元素,产 |
|
itertools |
zip_longest(it1, ..., |
并行从输入的各个可迭代对象中获取元素,产 |
表14-4:把输入的各个元素扩展成多个输出元素的生成器函数
模块 | 函数 | 说明 |
itertools | combinations(it, out_len) |
把 it 产出的 out_len 个元素组合在 |
itertools |
combinations_with_replacement(it, |
把 it 产出的 out_len 个元素组合在 |
itertools | count(start=0, step=1) |
从 start 开始不断产出数字,按 |
itertools | cycle(it) |
从 it 中产出各个元素,存储各个元 |
itertools | permutations(it, out_len=None) |
把 out_len 个 it 产出的元素排列在 |
itertools | repeat(item, [times]) |
重复不断地产出指定的元素,除非 |
表14-5:用于重新排列元素的生成器函数
模块 | 函数 | 说明 |
itertools | groupby(it,key=None) |
产出由两个元素组成的元素,形式为 (key, |
reversed(seq) |
从后向前,倒序产出 seq 中的元素;seq 必须是序 |
|
itertools | tee(it, n=2) |
产出一个由 n 个生成器组成的元组,每个生成器 |
python 生成器(四):生成器基础(四)标准库中的生成器函数的更多相关文章
- Python标准库中的生成器函数
一.用于过滤的生成器函数 - 从输入的可迭代对象中产出元素的子集,而不修改元素本身 import itertools l1 = [1,2,3,4,5] l2 = [True,False,True,Fa ...
- python协程(yield、asyncio标准库、gevent第三方)、异步的实现
引言 同步:不同程序单元为了完成某个任务,在执行过程中需靠某种通信方式以协调一致,称这些程序单元是同步执行的. 例如购物系统中更新商品库存,需要用"行锁"作为通信信号,让不同的更新 ...
- python 3.x 爬虫基础---常用第三方库(requests,BeautifulSoup4,selenium,lxml )
python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---常用第三方库 ...
- Python 标准库中的装饰器
题目描述 1.简单举例 Python 标准库中的装饰器 2.说说你用过的 Python 标准库中的装饰器 1. 首先,我们比较熟悉,也是比较常用的 Python 标准库提供的装饰器有:property ...
- Python标准库:内置函数hasattr(object, name)
Python标准库:内置函数hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False ...
- Python学习笔记011_模块_标准库_第三方库的安装
容器 -> 数据的封装 函数 -> 语句的封装 类 -> 方法和属性的封装 模块 -> 模块就是程序 , 保存每个.py文件 # 创建了一个hello.py的文件,它的内容如下 ...
- (转)python标准库中socket模块详解
python标准库中socket模块详解 socket模块简介 原文:http://www.lybbn.cn/data/datas.php?yw=71 网络上的两个程序通过一个双向的通信连接实现数据的 ...
- Python标准库-数字的处理函数(math模块)
Python标准库-数字的处理函数(math模块) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. #!/usr/bin/env python #_*_conding:utf-8_* ...
- STL笔记(6)标准库:标准库中的排序算法
STL笔记(6)标准库:标准库中的排序算法 标准库:标准库中的排序算法The Standard Librarian: Sorting in the Standard Library Matthew A ...
随机推荐
- Sequence in the Pocket【思维+规律】
Sequence in the Pocket 题目链接(点击) DreamGrid has just found an integer sequence in his right pocket. A ...
- Redis底层结构全了解
第一篇文章,思来想去,写一写Redis吧,最近在深入研究它. 一丶Redis底层结构 1. redis 存储结构 redis的存储结构从外层往内层依次是redisDb.dict.dictht.dict ...
- C Primer Plus(三)
重读C Primer Plus ,查漏补缺 重读C Primer Plus,记录遗漏的.未掌握的.不清楚的知识点 文件输入/输出 1.fgets函数在读取文件内容时会将换行符读入,但gets不会,fp ...
- cb28a_c++_STL_算法_查找算法_(1)find_find_if
cb28a_c++_STL_算法_查找算法_(1)find_find_iffind() //线性查找,比较慢.pos1 = find(ilist.begin(), ilist.end(), 5);fi ...
- ca74a_c++__文件流对象的使用-用来读写文件ifstream
/*ca74a_c++__文件流对象的使用-用来读写文件将文件流对象绑定到文件上检查文件是否打开成功将文件流与新文件重新绑定清楚文件流的状态infile.close();//关闭流 infile.cl ...
- phpmyadmin系列渗透思路连载(一)
当拿到phpmyadin的站点后,我一般会尝试一下几种攻击手法: 1.通过弱口令进入后台,尝试into outfile写入一句话 条件:(1)有写的权限 (2)知道web绝对路径 (3)w ...
- 解决Mac中anaconda作图中文异常显示的问题
说明 本篇主要针对在MAC系统中Anaconda环境下,matplotlib显示不了中文的问题,提出解决Python绘图时中文显示的方法. 运行环境 macOS Mojave 10.14.6 Pyth ...
- 为页内的tab添加的iframe添加加载动画过渡效果
var iframe = $("iframe[data-id=" + id + " ]"); if (iframe.length > 0) { var e ...
- AOP的概念
1.1 什么是AOP? 软件开发一直在寻求更加高效.更易维护甚至更易扩展的方式.软件开发的目的,最终是为了解决各种需求,包括业务需求和系统需求.使用面向对象方法,我们可以对业务需求等普通关注点进行很好 ...
- 面试题64:求 1 + 2 + ... + n
这道题目条件限制严格,需要发散思维...但是作者是以 C++ 语言特性来做讲解的,对于 Java 狗只能说稍微有点参考意义吧!