迭代器和可迭代对象
1. 可迭代对象的辨别
l1 = [1, 2, 3]
print("__iter__" in dir(l1))
2.可迭代对象的优点
- 直观可迭代对象可以显示所有的元素
- 操作方法多
- 效率相对较高
3.可迭代对象的缺点
- 占用内存
- 不可以迭代取值
4.可迭代对象转化为迭代器
l1 = [1, 2, 3]
ojb = iter(l1)
5. 迭代器的优点
- 非常节省内存
- 惰性机制
6.迭代器的缺点
- 效率相对低
- 不直观
- 不灵活
7. 迭代器在迭代时不能返回
l1 = [1, 2, 3, 4]
ojb = iter(l1)
for i in range(2):
print(next(ojb))
for i in range(1):
print(next(ojb))
8.可迭代对象与迭代器的对比
- 可迭代对象:可迭代对象是一个操作比较灵活,直观,效率相对高,但是比较占用内存的数据集。
- 迭代器:迭代器是一个非常节省内存,满足惰性机制,但是效率相对低,操作不灵活的数据集。
六、for循环的原理
l1 = [1, 2, 3, 4]
ojb = iter(l1)
while 1:
try:
print(next(ojb))
except StopIteration:
break