从母鸡下蛋的故事讲起 ①把列表解析的[]换成()得到的就是生成器表达式 ②列表解析与生成器表达式都是一种便利的编程方式,只不过生成器表达式更加节省内存空间 ③Python不但使用迭代器协议,让for循环变得更加通用。大部分内置函数,也是使用迭代器协议访问对象的。 例如sum函数是python的内置函 ...
分类:
编程语言 时间:
2018-10-13 02:48:59
阅读次数:
246
迭代器协议 >内部含有__next__和__iter__方法的就是迭代器只要是能被for循环的数据类型,就一定拥有__iter__方法,只要含有__iter__方法都是可迭代的只要是迭代器,一定可迭代可迭代的.__iter__()方法就可以得到一个迭代器迭代器中的__next__()方法可以一个一个 ...
分类:
其他好文 时间:
2018-10-05 19:45:44
阅读次数:
166
迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代(只能往后走,不能往前退)可迭代对象:遵循迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法)for循环的本质:循环所有对象,全都是使用迭代器协议。字 ...
分类:
编程语言 时间:
2018-10-04 09:51:30
阅读次数:
142
一:迭代器: 最大的特点:节省内存 1.1 迭代器协议 a:对象必须提供一个next方法, b:执行方法要么返回迭代中的下一项,要么抛弃一个Stopiteration异常, c:只能向后不能向前。 1.2 可迭代对象 实现了迭代器协议的对象。(对象内部定义一个__iter__()方法) 1.3 使用 ...
分类:
编程语言 时间:
2018-10-03 20:54:08
阅读次数:
207
迭代器(iterator)是一个实现了迭代器协议的对象,python的一些内置数据类型(列表,数组,字符串,字典等)都可以通过for语句进行迭代,我们也可以自己创建一个容器,实现了迭代器协议,可以通过for,next方法进行迭代,在迭代的末尾,会引发stopIteration异常。 本文来自 xio ...
分类:
编程语言 时间:
2018-10-01 22:15:30
阅读次数:
273
# 迭代器和生成器 # 迭代器: # 双下方法 : 很少直接调用的方法。一般情况下,是通过其他语法触发的 # 可迭代的 —— 可迭代协议 含有__iter__的方法('__iter__' in dir(数据)) # 可迭代的一定可以被for循环 # 迭代器协议: 含有__iter__和__next_... ...
分类:
其他好文 时间:
2018-09-24 11:24:36
阅读次数:
129
(1)迭代器协议 字符串、元组、列表、字典、集合、文件对象这些都不是可迭代对象,只不过在for循环中,调用了他们内部的__iter__方法,把他们变成了可迭代对象 然后for循环调用可迭代对象的的__next__方法去取值,而且for循环会捕捉StopIateration异常,以终止迭代 for循环 ...
分类:
编程语言 时间:
2018-09-17 17:51:50
阅读次数:
208
# 迭代器的概念# 迭代器协议 —— 内部含有__next__和__iter__方法的就是迭代器 # 迭代器协议和可迭代协议# 可以被for循环的都是可迭代的# 可迭代的内部都有__iter__方法# 只要是迭代器 一定可迭代# 可迭代的.__iter__()方法就可以得到一个迭代器# 迭代器中的_ ...
分类:
其他好文 时间:
2018-09-16 16:03:06
阅读次数:
121
# 迭代器的概念(优点:可遍历容器里的元素,省内存空间,随着循环生成) # 迭代器协议 —— 内部含有__next__和__iter__方法的就是迭代器 # 只要含有__iter__方法的都是可迭代的 —— 可迭代协议 # 可迭代的.__iter__()方法就可以得到一个迭代器 # 迭代器中的__n... ...
分类:
其他好文 时间:
2018-08-26 23:48:03
阅读次数:
342
一:什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代器中的下一项,要么就引起一个stoplteration异常,以终止协议(只能往后走不能往前) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个_iter_()方法) 3.协议是一种约定,可 ...
分类:
编程语言 时间:
2018-08-26 21:16:39
阅读次数:
149