一、什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约 ...
分类:
编程语言 时间:
2017-04-12 16:53:14
阅读次数:
302
1,迭代器协议: 1.1 迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 1.2. 可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 1.3. ...
分类:
编程语言 时间:
2017-04-12 04:06:38
阅读次数:
267
迭代: 迭代对象(Iterable),可以直接作用于for循环的对象,如list / tuple / dict / set / str /等集合数据类型可以直接作用于for循环 如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断: 简化迭代:列表生成式 o ...
分类:
编程语言 时间:
2017-04-12 03:03:26
阅读次数:
149
生成器 1、重点 生成器,要生成,首先想到return 生成器是迭代器,是可迭代对象,是生成器 迭代器是迭代器,是可迭代对象 可迭代对象指示可迭代对象 2、生成器与return有何区别? 生成器就是一个函数的内存地址,这个函数内包含有yield这个关键字 return只能返回一次函数就彻底结束了,而 ...
分类:
其他好文 时间:
2017-04-12 01:55:03
阅读次数:
204
问题:如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 ValueError 。 那么怎样才 能从这个可迭代对象中解压出N个元素出来? 解决方案:Python的星号表达式可以用来解决这个问题。比如,你在学习一门课程,在学期末的时 候, 你想统计下家庭作业的平均成绩,但是排除掉第一个和后一个分数 ...
分类:
其他好文 时间:
2017-04-10 23:25:56
阅读次数:
281
1、解压序列赋值给多个变量 任何的序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量。 唯一的前提就是变量的数量必须跟序列元素的数量是一样的。 如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 ValueError 。可以用*来解决,这个仅支持python3。扩展的迭代解压 ...
分类:
编程语言 时间:
2017-04-09 23:36:58
阅读次数:
205
一 递归和迭代 略 二 什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法 ...
分类:
编程语言 时间:
2017-04-09 18:10:44
阅读次数:
364
环境python3.5 数学运算 abs:求数值的绝对值 >>> abs(-2) 2 divmod:返回两个数值的商和余数 >>> divmod(5,2) (2, 1) >> divmod(5.5,2) (2.0, 1.5) max:返回可迭代对象中的元素中的最大值或者所有参数的最大值 >>> ma ...
分类:
编程语言 时间:
2017-04-08 13:38:29
阅读次数:
269
map,filter, reduce, zip都是针对python中的sequence数据类型的内置方法。 一、map map(func, *iterables) 先来看看map函数,接收两个参数,第一个是函数,第二个是序列(可迭代对象),map的作用是将序列中的每一个元素传入函数中,并将返回结果加 ...
分类:
编程语言 时间:
2017-03-30 23:25:43
阅读次数:
256
在python中,list,string,dict都是可迭代对象,可以通过for语句遍历. 迭代器 迭代器对象要求支持迭代器协议的对象,在python中,支持迭代器协议就算实现对象的__iter__()和next()方法.其中__iter__()方法返回迭代器对象本身; next()方法返回容器的下 ...
分类:
编程语言 时间:
2017-03-30 00:32:52
阅读次数:
224