欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

程序员文章站 2022-05-21 08:50:51
文章目录C14 可迭代的对象、迭代器和生成器14.1 Sentence类第1版: 单词序列ps: repr格式化的赋值利器,针对于长的字符格式化。自测答案14.4 Sentence类第3版: 生成器函数PS: 正则group提取匹配字符自测答案14.5 Sentence类第4版: 惰性实现自测答案14.6 Sentence类第5版: 生成器表达式自测答案14.8 另一个示例: 等差数列生成器自测答案14.9 标准库中的生成器函数总结14.10 Python 3.3中新出现的句法: yield from自测答...

C14 可迭代的对象、迭代器和生成器

14.1 Sentence类第1版: 单词序列

ps: repr格式化的赋值利器,针对于长的字符格式化。

默认情况下, reprlib.repr 函数生成的字符串最多有 30 个字符。
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

自测

1.如何检查对象是否可迭代?

答案

1.
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

14.4 Sentence类第3版: 生成器函数

PS: 正则group提取匹配字符

荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
如图可以观察到group到底做了什么
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

自测

1.除了用异常捕获拿到以下函数的所有值,还可以选择什么方法?
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

答案

1.
for循环,这是一种常见的懒惰写法
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

14.5 Sentence类第4版: 惰性实现

自测

1.re.findall 函数的惰性版本?

答案

荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

14.6 Sentence类第5版: 生成器表达式

自测

1.如下写法用生成器实现它的简化?

荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

答案

1.
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

14.8 另一个示例: 等差数列生成器

自测

1.itertools.count(1, .5)会产生什么?
2. 使用itertools.takewhile 函数产生如下等差列表
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

答案

1.
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

2.
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

14.9 标准库中的生成器函数

总结

原谅我,这一小节作者写得太出色了,以致于我只能贴他的图。大家这一节一定要看完!这一节的所有知识点我都搬运过来了。
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充


荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
有没有觉得使用accumulate比一般基础教程中教你如果用高阶函数做阶乘要强大多了。
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

有人以为repeat,可以用[5]*20之类的来创建列表,但当你的代码所需要的长度暂时不可知时,这会是一种更好的方式。
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

14.10 Python 3.3中新出现的句法: yield from

自测

1.如果生成器函数需要产出另一个生成器生成的值,你会怎么写?
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

答案

1.
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

14.11 可迭代的归约函数

自测

1.all(),any()是短路吗,面对空列表会返回什么?

答案

1.
是。all返回True,any返回False。这需要注意,因为与一般的判断是反的。
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

14.12 深入分析iter函数

自测

1.iter函数第二个参数作用?

答案

1.
第二个值是哨符,这是个标记值,当可调用的对象返回这个值时,触发迭代器抛出 StopIteration 异常,而不产出哨符。

这样大家就不用写繁琐的if判断和break终止了,离简化代码又更近了一步~~
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充
荐
                                                        【流畅的python】笔记(C14可迭代的对象、迭代器和生成器)自测知识点和书籍补充

本文地址:https://blog.csdn.net/ngadminq/article/details/107293038