美文网首页
day15 迭代器 生成式 面向过程

day15 迭代器 生成式 面向过程

作者: 荭鲤鱼与緑鲤鱼与驴 | 来源:发表于2020-07-22 18:50 被阅读0次

Ⅰ  迭代器

什么是迭代器

器: 工具

Ⅱ  什么是迭代?

迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的开始值

迭代器:就是一种不一代于索引的取值工具

Ⅲ  为何要用?

对于序列类型:字符串,列表,元组,我么可以使用索引取值.但是对于字典,集合,文件等类型没有索引的,若还想取出内部包含的元素,则必须找出一种不依赖于索引的迭代方式,这就是迭代器

Ⅳ  什么是可迭代对象

可迭代对象指的是内置有__iter__方法的对象

例: 'hello'.__iter__ (1,2,3).__iter__

字典dict 集合set 文件对象(同时也是迭代器对象) 字符串str 列表list 元组tuple都属于可迭代对象

圈起来的都是可迭代对象

Ⅴ  什么是迭代器对象

可迭代对象经过__iter__加工后变成迭代器对象,也叫迭代器

内置有__next__和内置有__iter__方法的都是迭代器对象(文件对象)

可迭代对象与迭代器对象相同

Ⅵ  自定义迭代器

内置有__iter__和内置有__next__方法的都是迭代器对象,也叫迭代器

主要用来实现惰性计算,从而达到节省内存的效果

yiedl  同 return一样有返回功能

yield vs return

相同: 都可以用来返回值

不同:return 只能返回一次值;而yield可以发返回多次

总结:

优点:

是一种通用的迭代取值方案

惰性计算,节省内存空间

缺点:

取值不如索引,key取值灵活

取值是一次性的,只能一直向后去

不能预估值的个数,取完才知道值的个数

Ⅶ  生成器

生成器本质就是迭代器

用来自定义迭代器

Ⅷ  面向过程编程

面向过程

核心是'过程'二字,过程指的是做事的步骤,也就是先干什么,在干什么,后干什么

基于该思想写程序就好比设计一条条的流水线

优点:可以把复杂的问题流程化,进而简单化

缺点:拓展性差,牵一发而动全身

Ⅸ  生成式

列表生成式lis = [i for i in reange(5)]

for左边为表达式,每运行一次for循环,表达式往列表增加一次值

for循环后面可以加上 if 判断,条件成立后运行表达式

字典生成式

dic = {f'k{i}' : i**2 for i in range(5)}

字典的表达式的值需要有两个,且是key:value格式

集合生成式

res = {i for i in range(10)}

使用方式都相同

生成器表达式

res = (i for i in range(5))

在调用next(res) 调用时才运行一次

这个就是生成式和迭代器的联合用法,在对生成式res进行迭代取值时,生成式运行一次,取值一次运行一次

Ⅹ  内置函数(了解)

abs 取绝对值

all([]) 列表内值全不为真 ,才为真,如果列表内为空,结果为真 ,

any([])  查询是否为可迭代对象

callable() 判断是否是可调用的

chr() 数字转成字符参考ascii表

ord() 字符转成ascii表对应的数字

dir() 查询内置函数包含什么功能

divmod(10,3) 输出10除以3的整数和余数

eval() 运行字符串代码

相关文章

网友评论

      本文标题:day15 迭代器 生成式 面向过程

      本文链接:https://www.haomeiwen.com/subject/wpptlktx.html