一、什么是迭代器协议1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个stoplteration异常,以终止迭代(只能往后走,不能往前退)2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个iter()方法)3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议
分类:
编程语言 时间:
2019-01-28 20:18:20
阅读次数:
191
迭代器 迭代器在 Python 2.2 版本中被加入, 它为类序列对象提供了一个类序列的接口。 Python 的迭代无缝地支持序列对象, 而且它还允许迭代非序列类型, 包括用户定义的对象。即迭代器可以迭代不是序列但表现出序列行为的对象, 例如字典的 key , 一个文件的行, 等等。迭代器有以下特性 ...
分类:
编程语言 时间:
2019-01-27 16:49:18
阅读次数:
178
如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration) ...
分类:
编程语言 时间:
2019-01-24 19:28:59
阅读次数:
203
我们之前一直在用可迭代对象进行操作,那么到底什么是可迭代对象.我们现在就来讨论讨论可迭代对象.首先我们先回顾下我们 熟知的可迭代对象有哪些:str list tuple dic set 那为什么我们称他们为可迭代对象呢?因为他们都遵循了可迭代协议,那什么又是可迭代协议呢.首先我们先看一段错误的代码: ...
分类:
编程语言 时间:
2019-01-11 20:07:30
阅读次数:
156
一,迭代器 1.1什么是可迭代对象? 字符串、列表、元组、字典、集合都可以被for循环,说明他们都是可迭代的。 我们怎么来证明这一点呢? from collections import Iterable li = [1, 2, 3, 4] t = (1, 2, 3, 4) d = {1, 2, 3, ...
分类:
编程语言 时间:
2019-01-02 23:29:32
阅读次数:
212
1.1迭代器 什么是迭代器: 迭代器是一个可以记住遍历的位置对象 迭代器对象从集合的第一个元素元素开始访问,直到所有元素被访问完结束,迭代器只能往前不会后退。 迭代器有两个基本方法:iter ,next 方法 内置函数iter(),next() 本质上都是用的对象.__iter__(),__next ...
分类:
编程语言 时间:
2018-12-24 10:23:55
阅读次数:
162
python 迭代器和生成器 python 迭代器和生成器 python 迭代器和生成器 python 迭代器和生成器 一、可迭代协议:可以被迭代要满足要求的就叫做可迭代协议。内部实现了__iter__方法 iterable:可迭代的 对应的标志 什么叫迭代?:一个一个取值,就像for循环一样取值 ...
分类:
其他好文 时间:
2018-12-19 17:57:58
阅读次数:
175
本篇文章简单谈谈可迭代对象,迭代器和生成器之间的关系。 三者简要关系图 可迭代对象与迭代器 刚开始我认为这两者是等同的,但后来发现并不是这样;下面直接抛出结论: 1)可迭代对象包含迭代器。2)如果一个对象拥有__iter__方法,其是可迭代对象;如果一个对象拥有next方法,其是迭代器。3)定义可迭 ...
分类:
其他好文 时间:
2018-12-17 11:42:47
阅读次数:
190
在学习python数据结构的过程中,可迭代对象,迭代器,生成器这些概念参杂在一起,难免让初学者一头雾水,今天就来捋捋这些概览。
分类:
编程语言 时间:
2018-12-13 01:12:56
阅读次数:
250
一、楔子 假如我现在有一个列表l=['a','b','c','d','e'],我想取列表中的内容,有几种方式? 首先,我可以通过索引取值l[0],其次我们是不是还可以用for循环来取值呀? 你有没有仔细思考过,用索引取值和for循环取值是有着微妙区别的。 如果用索引取值,你可以取到任意位置的值,前提 ...
分类:
编程语言 时间:
2018-12-09 22:08:18
阅读次数:
223