迭代与遍历的含义

遍历:Traverse

访问集合中的每一个元素 QQ截图20210123052435.png

迭代:Iterate

通过反复执行调用某个过程达成目的,被称为迭代。 例如:递归(recursion)、循环(loop)等 (不同的迭代方式会参数不同的结果) QQ截图20210123052730.png

遍历和迭代的关系

迭代是遍历的方法,遍历是迭代的目的(或者结果)


迭代器与可迭代对象

迭代器可以被迭代,即迭代器是可迭代对象 可迭代对象不一定是迭代器。 (迭代器是可迭代对象的一种,而可迭代对象可不止有迭代器)

L- 迭代与遍历 - 图3

判断对象:isinstance( )

通过isinstance函数可以判断,对象的类型

  1. from collections import Iterable #可迭代对象
  2. from collections import Iterator #迭代器对象
  3. L = [1,2,3,4]
  4. L1 = isinstance(L,Iterable)
  5. L2 = isinstance(L,Iterator)
  6. F1 = isinstance((i for i in L), Iterable) # python中的for会返回迭代器
  7. F2 = isinstance((i for i in L), Iterator)
  8. print("[1,2,3,4]is Iterable:", L1)
  9. print("[1,2,3,4]is Iterator:", L2)
  10. print("(i for i in [1,2,3,4])is Iterable:", F1)
  11. print("(i for i in [1,2,3,4])is Iterator:", F2)
  12. #===========================
  13. #OUTPUT
  14. [1,2,3,4]is Iterable: True
  15. [1,2,3,4]is Iterator: False
  16. (i for i in [1,2,3,4])is Iterable: True
  17. (i for i in [1,2,3,4])is Iterator: True