迭代器和可迭代对象

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
原文地址:https://www.cnblogs.com/mahedong/p/11079659.html