Ⅰ 迭代器
什么是迭代器
器: 工具
Ⅱ 什么是迭代?
迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的开始值
迭代器:就是一种不一代于索引的取值工具
Ⅲ 为何要用?
对于序列类型:字符串,列表,元组,我么可以使用索引取值.但是对于字典,集合,文件等类型没有索引的,若还想取出内部包含的元素,则必须找出一种不依赖于索引的迭代方式,这就是迭代器
Ⅳ 什么是可迭代对象
可迭代对象指的是内置有__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() 运行字符串代码
网友评论