美文网首页
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