参考链接: Python迭代器

迭代器

迭代器是一个可以记住遍历的位置的对象。

迭代器有两个基本的方法:iter() 和 next()。

使用对象内置的__iter__()方法生成迭代器

it = name.__iter__()

使用内置工厂函数生成迭代器

it = iter(name)

迭代器通过其内建的 iter.next() 方法,或通过 Python 内建的 next() 来迭代下一个元素,直到最后触发 StopIteration异常后表示迭代结束。

实例:

name = {'张三': 24, '李四': 25, '王五': 20}

it = iter(name)

while True:

try:

print(next(it))

except StopIteration:

break

输出为三个key的值

而for循环,本质就是调用了迭代器

for x in name 把name变成了一个迭代器,然后调用next方法,而且不用写 except StopIteration

迭代器的作用:

优点:

1.提供一种不依赖索引的取值方式,这样就可以遍历那些没有索引的可迭代对象(字典,集合,文件)

2.迭代器与列表比较,迭代性是惰性计算,更省内存

缺点:

1.永远无法获取迭代器的长度,使用不如列表索引灵活,比如要获取第三个,则必须要一个个next

2.一次性,只能往后取,无法倒着取

实例:

name = {'张三': 24, '李四': 25, '王五': 20}

it = iter(name)

while True:

try:

print(next(it))

except StopIteration:

break

for i in it:

print(i)

输出只有三个key的值,因为it这个迭代器已经取完了值

[转载] python迭代器相关推荐

  1. [转载] python迭代器、生成器和装饰器

    参考链接: 有效地在Python中使用迭代 文章目录 生成器生成器表达式(generator expression)通过使用yield关键字定义生成器并行前戏高潮 迭代器迭代器概述iter()函数 创 ...

  2. [转载] Python 迭代器 深入理解 与应用示例

    参考链接: Python | 可迭代和迭代器之间的区别 本篇文章简单谈谈可迭代对象,迭代器和生成器之间的关系. 三者简要关系图 可迭代对象与迭代器 刚开始我认为这两者是等同的,但后来发现并不是这样:下 ...

  3. [转载] Python中生成器和迭代器的区别

    参考链接: Python迭代器 Python中生成器和迭代器的区别(代码在Python3.5下测试): Num01–>迭代器 定义: 对于list.string.tuple.dict等这些容器对 ...

  4. python迭代器的设计

    2019独角兽企业重金招聘Python工程师标准>>> python迭代器的设计 跟黄哥学python编程系列文章之迭代器 如何自定义迭代器,有2个必要条件 1.自定义类有一个方法_ ...

  5. python迭代器生成器 学会再缩短一半开发效率 看看大牛是怎么写的

    一.迭代 什么叫做迭代? 比如在 Java 中,我们通过 List 集合的下标来遍历 List 集合中的元素,在 Python 中,给定一个 list 或 tuple,我们可以通过 for 循环来遍历 ...

  6. 简单介绍python迭代器和生成器

    这篇文章主要介绍了Python中的迭代器和生成器,涉及到Python中很多重要的特性,需要的朋友可以参考下,希望能够给你带来帮助 python迭代器和生成器 1.迭代器 这里用字典示例 while T ...

  7. python迭代器使用_python迭代器的使用方法实例

    什么是迭代器?迭代器是带有next方法的简单对象,当然也要实现__iter__函数.迭代器能在一序列的值上进行迭代,当没有可供迭代时,next方法就会引发StopIteration 的异常.pytho ...

  8. python生成器 图片分类_python批量处理图片图片Python迭代器和生成器介绍

    Python迭代器和生成器介绍迭代器 迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration ...

  9. [转载] Python的生成器

    参考链接: Python中的生成器Generator Python的生成器 什么是生成器 创建python迭代器的过程虽然强大,但是很多时候使用不方便.生成器是一个简单的方式来完成迭代.简单来说,Py ...

最新文章

  1. day1简述、输入输出、运算符、条件语句、文件读写、三元运算
  2. 使用XIB实现嵌套自定义XIB视图
  3. 【MySQL性能优化】数据库设计三大范式(二)
  4. 查看MySQL表占用空间大小
  5. winged edge翼边
  6. mysql80配置环境变量_MySQL:安装与配置
  7. slf4j-log4j12-1.5.8.jar有什么用
  8. linux系统给串口权限,让ubuntu串口和USB设备不用root权限访问
  9. MVPArms实现本现数据缓存
  10. 无线WAPI网络AS鉴权服务器,WAPI是什么意思?苹果iPhone手机启用WAPI有什么作用?...
  11. 【ROS】header.stamp与double转换
  12. Android自定义WebView实现Youtube网络视频播放控件
  13. 疯狂填词 mad_libs 第9章9.9.2
  14. 打印端口用计算机名,如何设置打印机端口,教您设置电脑打印机端口
  15. 什么?你的口腔竟然只有一边长牙结石!!!
  16. Windows下安装mysql的操作步骤
  17. socket 超时设置
  18. typora:一些常用数学符号
  19. ORB_SLAM2及其他SLAM精度测评
  20. [转] 整理一下SQLSERVER的排序规则

热门文章

  1. 2020 第十一届蓝桥杯大赛软件赛省赛(第一场),C/C++大学B组题解
  2. 【PAT】2020年秋季考试划水准备贴
  3. java发布rest服务器_ArcGIS Server 10 Java 版的Rest服务的部署方法
  4. jsp和mysql答辩_如何应对JSP连接MySQL数据库问题_网站数据库怎么连接到网页答辩问题...
  5. 第七章节 类的抽象(抽象类)
  6. php 字节码查看,PHP字节码缓存和内置服务器
  7. 51单片机sht30_基于51单片机和机智云的WIFI智能插座(2019版)
  8. Python入门--文件的读写,相对路径,绝对路径
  9. Csrf漏洞概述及其原理
  10. 2018ACM上海大都会赛: I. Matrix Game(最小费用最大流)