一。迭代器协议 1. 迭代器协议:对象需要提供next方法,它要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 2. 可跌达对象:实现了迭代器协议的对象 3. 协议是一种约定,可迭代对象实现迭代器协议,在Python中,迭代是通过for ... in来完成的 二。简单 ...
分类:
其他好文 时间:
2017-11-08 13:14:21
阅读次数:
220
生成器都是迭代器,迭代器不一定是生成器 list,tuple,dict,string:Iterable(可迭代对象) l = [1,2,3,4] d = iter(l) # l.__iter__() print(d) #<list_iterator object at 0x0000000000687 ...
分类:
其他好文 时间:
2017-11-07 14:28:43
阅读次数:
247
map map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。 即map(函数,Iteratable) map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性 ...
分类:
编程语言 时间:
2017-11-04 19:25:13
阅读次数:
187
e) 迭代器Iterable(可迭代对象) 和 Iterator(迭代器) 主要区别是 :凡是可以用 for 循环的 都是 Iterable(可迭代对象) 凡是需要通过next()函数获得值的可迭代对象都是 Iterator(迭代器)。(所以生成器可以 被next()函数调用并不断返回下一个值的对象... ...
分类:
其他好文 时间:
2017-11-04 11:31:03
阅读次数:
121
可迭代对象(iterable):凡是可以用for循环遍历的都是iterable(可迭代对象),例如字符串、元组、列表、字典和生成器 迭代器(iterator):凡是需要调用next()方法获得值的可迭代对象都是iterator(迭代器),例如生成器 ...
分类:
其他好文 时间:
2017-11-04 11:12:14
阅读次数:
141
生成式和生成器 列表生成式是Python最受欢迎的语法之一,通过间接的语法可以对一组元素进行过滤,还可以对元素处理,格式为[exp for val in collection if condition]相当于: 例如: 运行结果: <type 'list'>[0, 4, 16, 36, 64] 注: ...
分类:
编程语言 时间:
2017-11-03 23:58:14
阅读次数:
427
在了解Python的数据结构时,容器(container)、可迭代对象(iterable)、迭代器(iterator)、生成器(generator)、列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,我将用一篇文章试图将这些概念 ...
分类:
编程语言 时间:
2017-11-03 20:17:02
阅读次数:
217
可以直接作用于for循环的数据类型有一下几种 一类是几何数据类型,如 list , tuple , dict , set ,str 等 二类是generator包括生成器和带yield方法的函数 这些可以直接作用于for 循环的对象统称为可迭代对象 Iterable 我们可以使用法法.isinsta ...
分类:
编程语言 时间:
2017-11-03 00:50:18
阅读次数:
242
無返回值: 1 l.append(object) 2 l.sort(key,reverse) 這是對list進行的操作,會永久排序,而內置方法中的sorted()只是臨時改變 3 l.clear() 4 l.extend(iterable) 例如l.extend('hello'),則會將hello分 ...
分类:
其他好文 时间:
2017-11-01 01:07:05
阅读次数:
213
什么是迭代(iteration)呢? 给定一个list或者tuple,通过for循环来遍历这个list或者tuple、这种遍历就是迭代(iteration)。只要是可迭代的对象都可以进行迭代、怎么判断一个对象是否是可迭代的对象呢?可以用collections模块里面的iterable包的isinst ...
分类:
编程语言 时间:
2017-10-31 18:54:42
阅读次数:
140