生成器都是迭代器,迭代器不一定是生成器

迭代器满足两个条件: 1. 有iter方法 2. 有next方法

# list, tuple, dict, string: iterable(他们都有iter方法,所以都是可迭代对象)
# 调用 iter 方法返回的 d 就是一个迭代器
# l = [1, 2, 3, 4, 5]
l = {'name': 'lily', 'age': 18}
d = iter(l) # 通过 iter 直接返回一个可迭代对象
print(d) # <list_iterator object at 0x0000001EA3547518> print(next(d)) # name
print(next(d)) #age

for i in [1, 2, 3, 4]

for 循环内部完成三件事:

1. 调用可迭代对象的 iter 方法返回一个迭代器对象

2. 不断调用迭代器的 next 方法

3. 处理 StopIteration

更多参考:http://www.cnblogs.com/yuanchenqi/articles/5769491.html

17 python 初学(迭代器)的更多相关文章

  1. Python初学笔记之字符串

    一.字符串的定义 字符串是就一堆字符,可以使用""(双引号).''(单引号)来创建. 1 one_str = "定义字符串" 字符串内容中包含引号时,可以使用转 ...

  2. python基础——迭代器

    python基础——迭代器 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.tuple.dict.set.str等: 一类是generator,包括生成器 ...

  3. python基础—迭代器、生成器

    python基础-迭代器.生成器 1 迭代器定义 迭代的意思是重复做一些事很多次,就像在循环中做的那样. 只要该对象可以实现__iter__方法,就可以进行迭代. 迭代对象调用__iter__方法会返 ...

  4. python之迭代器与生成器

    python之迭代器与生成器 可迭代 假如现在有一个列表,有一个int类型的12345.我们循环输出. list=[1,2,3,4,5] for i in list: print(i) for i i ...

  5. Python:迭代器的简单理解

    一.什么是迭代器 迭代,顾名思义就是重复做一些事很多次(就现在循环中做的那样).迭代器是实现了__next__()方法的对象(这个方法在调用时不需要任何参数),它是访问可迭代序列的一种方式,通常其从序 ...

  6. 第十六篇 Python之迭代器与生成器

    一.迭代器 一. 递归和迭代 生活实例说明什么是递归和迭代 A想去腾达大厦,问B怎么走路,B 说我不知道,我给你问问C,C也不知道,C又去问D,D知道,把路告诉了C,C又告诉B,B最后告诉A, 这就是 ...

  7. 孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备

     孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天本来应当继续学习Python的数据库操作,但根据过去我自 ...

  8. python——iterator迭代器|iterator详解——20140918|

    -----------------------------------------------------------------------------前言--------------------- ...

  9. 搞清楚 Python 的迭代器、可迭代对象、生成器

    很多伙伴对 Python 的迭代器.可迭代对象.生成器这几个概念有点搞不清楚,我来说说我的理解,希望对需要的朋友有所帮助. 1 迭代器协议 迭代器协议是核心,搞懂了这个,上面的几个概念也就很好理解了. ...

随机推荐

  1. js 幻灯片

    基本思路 红色:为可见区域 黑色方框:元素,不可见. 通过绝对定位方式,把黑色方框,移动到红色可见区别,来实现图片切换.  实例 创建幻灯实例对象 <div class="slide& ...

  2. mysql给root开启远程访问权限

    MySql-Server 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问. !!!所以必须给root修改可以远程访问的权限 1.在连接服务器后,操作mysql系统 ...

  3. JS函数浅析(一)

    1.万物皆为对象 提起函数首先要知道对象,而对象又是js数据类型中的一种,所以我们从头开始. 1)javascript数据类型有哪些?          原始数据类型:number,undefined ...

  4. C#自定义控件、用户控件、动态加载菜单按钮

    一.效果图,动态加载5个菜单按钮: 二.实现方法 1.创建用户控件 2.在用户控件拖入toolStrip 3.进入用户控件的Lood事件,这里自动添加5个选  ToolStripMenuItem,后期 ...

  5. SAP MM ME57 把PR转成PO

    SAP MM ME57 把PR转成PO 加入P3项目里,笔者负责采购和IM库存管理domain.采购环节里的PR转PO,客户global template里建议使用ME57或者在MD04里做.笔者在项 ...

  6. python3 os模块

    os模块就是对操作系统进行操作,这个模块提供了一种使用操作系统相关功能的可移植方式.1.系统信息 posix.uname_result(sysname='Linux', nodename='liang ...

  7. 关于苹果延迟了App接入HTTPS服务截止日期

    可参考 http://www.cocoachina.com/apple/20161223/18431.html https://developer.apple.com/news/?id=1221201 ...

  8. 商品描述里包含了英文双引号,ERP无法同步菜品信息

    1. 2.因菜品描述里包含英文双引号,破坏了json格式,导致json格式错乱,ERP无法解析,所以无法同步数据.

  9. Scala隐式参数

    Scala方法可以具有隐式参数列表,由参数列表开头的implicit关键字标记.如果参数列表中的参数没有像往常一样传递,Scala将查看它是否可以获得正确类型的隐式值,如果可以,将自动传递. Scal ...

  10. 自动化测试基础篇--Selenium Xpath定位

    摘自https://www.cnblogs.com/sanzangTst/p/7458056.html 学习 什么是xpath? XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言 ...