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
凡是可作用于for循环的对象都是Iterable类型;凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;
只要是生成器,那就一定是迭代器。但迭代器不一定都是生成器。
使用iter()函数可以将list、dict、str等变成迭代器
迭代器的缺点:
iterrator的计算是惰性的,只有通过next函数在需要返回下一个数据时才会计算
迭代器一次性的,只能往后走,不能往前退

浙公网安备 33010602011771号