python函数(生成器和迭代器)

列表生成式:

>>> a = [i+1 for i in range(10)]

>>>a

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

生成器和迭代器部分:

使用isinstance()判断一个对象是否是Iterable对象:

from collections import Iterable 

str1 = 'hello'                      #字符串为可迭代对象
print(isinstance(str1,Iterable))

li = ["alex","野模"]                 #列表为可迭代对象
print(isinstance(li,Iterable))

num = 2018
print(isinstance(num,Iterable))


计算结果:

True
True
False
View Code

凡是可作用于for循环的对象都是Iterable类型;凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;

只要是生成器,那就一定是迭代器。但迭代器不一定都是生成器。

使用iter()函数可以将list、dict、str等变成迭代器

迭代器的缺点:

iterrator的计算是惰性的,只有通过next函数在需要返回下一个数据时才会计算

迭代器一次性的,只能往后走,不能往前退

猜你喜欢

转载自www.cnblogs.com/hachi1017/p/9048543.html
今日推荐