Python之路-迭代器

一.迭代器

定义:基于上次的结果基础上执行重复达到更优

可迭代对象:凡是对象下有_iter_方法的即是可迭代对象

迭代对象的优点:

1.提供了一种统一的(不依赖于索引)迭代方式

2.迭代器本身,比起其他数据类型更省内存

迭代器的缺点:

1.一次性,只能往后走,不能回退,不如索引取值灵活

2.迭代器本身,比起其他数据类型更省内存

二. 生成器

特点:特殊的迭代器,函数内部包含yield关键

yield的功能:

1.把函数的结果做成迭代器

2.保存函数暂停运行时的状态,下次继续执行

yield与return比较:

相同:都有返回值的功能

不同:ruturn只能返回一次值,而yield可以返回多次值

时间: 2024-08-11 13:54:08

Python之路-迭代器的相关文章

Python之路——迭代器与生成器

一.迭代器 1 # -*- encoding:utf-8 -*- 2 3 4 # dir([1,2].__iter__())是列表迭代器中实现的所有方法,dir([1,2])是列表中实现的所有方法 5 # print(dir([1,2].__iter__())) 6 # print(dir([1,2])) 7 # print(set(dir([1,2].__iter__()))-set(dir([1,2]))) # {'__length_hint__', '__setstate__', '__n

python之路--迭代器和生成器

迭代: 迭代器协议: 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象 for循环实现迭代的原理: 1.调用__iter__()方法,将后面序列转为

python之路系列-生成器和迭代器-景丽洋老师

返回顶部 楔子 假如我现在有一个列表l=['a','b','c','d','e'],我想取列表中的内容,有几种方式? 首先,我可以通过索引取值l[0],其次我们是不是还可以用for循环来取值呀? 你有没有仔细思考过,用索引取值和for循环取值是有着微妙区别的. 如果用索引取值,你可以取到任意位置的值,前提是你要知道这个值在什么位置. 如果用for循环来取值,我们把每一个值都取到,不需要关心每一个值的位置,因为只能顺序的取值,并不能跳过任何一个直接去取其他位置的值. 但你有没有想过,我们为什么可以

Python之路(六):迭代器,装饰器,生成器

python基础之迭代器和生成器 迭代器 迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stoplteration异常,以终止迭代(只能往后走不能往前退) 实现了迭代器协议的对象(对象内部定义了一个__iter__()方法) python中的内部工具(如for循环,sum,min,max函数等)基于迭代器协议访问对象. 1 #基于迭代器协议 2 li = [1,2,3] 3 diedai_l = li.__iter__() 4 print(died

Python之路【第二篇】:Python基础(一)

Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name = 'wupeiqi' print  name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进

Python之路_Day7

Python之路_Day7_课堂笔记 前期回顾 一.作业 1.ATM 2.计算器 本期内容 一.模块 1.configparser 2.XML 3.shutil 4.subprocess系统命令 二.面向对象(上) 1.面向对象基础 2.面向对象编程和函数式编程对比 3.面向对象中对象和类的关系 4.面向对象之构造方法 5.面向对象之应用场景实例 6.面向对象之对象中封装对象 7.面向对象之单继承 8.面向对象之多继承 一.模块 1.configparser 用于处理特定格式的文件,其本质上是利

Python之路_Day5

Python之路_Day5_课堂笔记 ---------------------------------------------------------------------------------------------------- 前期回顾: 一.python基础 二.基本数据类型 int str list tuple dict set 三.函数式编程 四.装饰器 1.将func当作参数传递给装饰器,并执行 2.将装饰器函数的返回值重新赋值给func ------------------

python之路,Day24 常用设计模式学习

python之路,Day24 常用设计模式学习 本节内容 设计模式介绍 设计模式分类 设计模式6大原则 1.设计模式介绍 设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一

Day4 - Python基础4 迭代器、装饰器、软件开发规范

Python之路,Day4 - Python基础4 (new版) 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],我要求你把列表里的每个值加1,你怎么实现?你可能会想到2种方式 >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>