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 ...
随机推荐
- 168.Excel列表名称
Document 2020-03-16 Excel表列名称 1 -> A. 2 -> B: 26 -> Z 27 -> AA 28 -> AB 示例: 输入: s = & ...
- 解决Maven静态资源过滤问题
在项目的pom.xml中添加下面的内容 <build> <resources> <resource> <directory>src/main/java& ...
- filebeat v6.3 多行合并的步骤 多个表达式同时匹配
配置文件位于/etc/filebeat/filebeat.yml,就是filebeat的主配置文件打开文件filebeat.yml,搜索multiline:,默认是注释的,常用的有如下三个配置: mu ...
- [51nod1577]异或凑数
题目 点这里看题目. 分析 以下设\(k=\lfloor\log_2(\max a)\rfloor\). 关于异或凑数的问题自然可以用线性基处理,即如果可以插入到线性基,就说明无法凑出这个 ...
- XAI/MLI 可解释机器学习系列1- 开源&paper汇总
一直在关注可解释机器学习领域,因为确实在工作中有许多应用 模型检查,特征重要性是否符合预期和AUC一样重要 模型解释,比起虚无缥缈的模型指标,解释模型学到的规律更能说服业务方 样本解释,为什么这些用户 ...
- mysql内连接
inner join(等值连接) 只返回两个表中联结字段相等的行 select * from role_action ra INNER JOIN action a on ra.action_id = ...
- 说说硬件中核心板的作用和优缺点,基于i.MX8M Mini核心处理器平台
核心板,顾名思义,即硬件构成中关键的器件和电路打包封装的一块电子主板,具有布线复杂.多层.高频信号干扰.器件密度高等特性,大多数核心板集成了处理器.内存.存储器.电源管理和引脚,通过引脚与配套基板连接 ...
- 【Azure SQL】数据库性能分析
前置条件 用户有查询数据统计权限 GRANT VIEW DATABASE STATE TO database_user; CPU性能问题 正在发生 查看前X个CPU消耗查询 (汇总) SELECT T ...
- JavaScript中的事件委托(转至大佬)
转至:https://www.cnblogs.com/liugang-vip/p/5616484.html 起因: 1.这是前端面试的经典题型,要去找工作的小伙伴看看还是有帮助的: 2.其实我一直都没 ...
- C#中的闭包和意想不到的坑
虽然闭包主要是函数式编程的玩意儿,而C#的最主要特征是面向对象,但是利用委托或lambda表达式,C#也可以写出具有函数式编程风味的代码.同样的,使用委托或者lambda表达式,也可以在C#中使用闭包 ...