Python/迭代器和生成器 一、迭代器 迭代器的特性: 迭代是Python中最强有力的特性之一,可以把迭代看成是一种处理序列中元素的方式。 可以直接作用于for循环的对象统称为可迭代对象(Iterable)。 可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator)。 所有 ...
分类:
编程语言 时间:
2017-04-24 15:45:39
阅读次数:
222
一 什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约 ...
分类:
其他好文 时间:
2017-04-23 16:46:40
阅读次数:
138
记录平时学习中接触到的和网上看到的一些pythonic的方法,只为日后查询时候方便。 1.列表推导式: 2.生成器表达式(减少内存占用) 3.强大的内置函数zip,可遍历两个可迭代对象。在将行转换为类时特别有用。(但似乎zip函数在处理大的数据时速度会比较慢) 4.*用于解构可迭代对象 当一个函数, ...
分类:
编程语言 时间:
2017-04-23 12:36:02
阅读次数:
187
迭代器 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等; 一类是generator,包括生成器和带yield的generator function。 这些可以直接作用于for循环的对象统称为可迭代对象:Iterab ...
分类:
其他好文 时间:
2017-04-21 00:14:16
阅读次数:
186
map函数:映射功能 map(function, iterable, ...):可迭代对象向函数function传入元素,并得到一个返回值. 1 >>> map(lambda x :x+1,[1,2,3.4]) 2 [2, 3, 4.4] 3 >>> map(lambda x :x+"_key",{ ...
分类:
其他好文 时间:
2017-04-18 11:23:41
阅读次数:
257
sorted(dic.items(),key=lambda item:item[0])相关知识整理1、sorted() sorted(iterable, key=None, reverse=False) iterable : 可迭代对象 key : 指定一个函数,用于从iterable 中的每个元素 ...
分类:
编程语言 时间:
2017-04-17 23:44:48
阅读次数:
231
xrange() :使用 range() 的时候会把列表打印出来,但是 xrange() 只返回一个可迭代对象,类似于 print 和 return 的区别,优先使用 xrange() ...
分类:
编程语言 时间:
2017-04-16 16:11:23
阅读次数:
157
一 内置函数 这里全是用print打印来查看输出结果 1)abs() 绝对值 2)all() 可迭代对象为空,返回True,有任何一个值为假,则为False 3)any() 可迭代对象为空,发挥False 有任何一个值为真,则为True 4)bin() 十进制转2进制 ,0b代表2进制 5)hex( ...
分类:
编程语言 时间:
2017-04-13 20:22:38
阅读次数:
269
为什么要用迭代器,先看看它的优点与缺点 优点: 1: 迭代器提供了一种不依赖于索引的的取值方式,这样就可以遍历没有索引的可迭代对象(如:字典\集合) 2:迭代器与列表比较,迭代器惰性计算的,更节省内存 缺点: 从列表取值是一次一个,迭代器也是一次一个,迭代器不知道某个值的位置,只能next取值。但是... ...
分类:
其他好文 时间:
2017-04-12 21:44:42
阅读次数:
189
初识表达式: 优雅、清晰和务实是python的核心价值观,如果想通过操作和处理一个序列(或其他的可迭代对象)来创建一个新 的列表时可以使用列表解析(List comprehensions)和生成表达式,通过这两个操作,我们可以看到这三个观点是如何 在python中和谐统一起来的。 一、三元表达式: ...
分类:
编程语言 时间:
2017-04-12 18:33:46
阅读次数:
278