迭代器的优点:
1.节省内存
2.惰性机制
3.单向,不可逆
如何判断它是否是可迭代对象和迭代器
可迭代对象->迭代器
可迭代对象__iter__():就会变成迭代器
1.'__iter__'in dir(obj):True或Flase,返回True就代表他是可迭代对象
2.引入模块
from collections import Iterator(迭代器)
print(isinstance(参数名,Iterator)
from collections import Iterable(迭代对象)
print(isinstance(参数名,Itera)ble
生成器:
自己用python代码写的迭代器就是生成器
生成器本身就是迭代器
生成器的表达式和列表推倒式
1.列表推导式
[变量(加工后的变量) for 变量 in iterable(迭代对象)] # 循环模式
[变量(加工后的变量) for 变量 in iterable if 条件] # 筛选模式
2.生成器表达式:和列表表达式一样只是括号不一样
优点:1.节省代码
缺点:不好排错
整体:凡是用列表推导式构造的,用其它方式也可以,非常复杂的列表,列表推导式是构造不出来的
内置函数