可迭代对象和迭代器的区别

可迭代对象

  • 字面意思:可以进行循环更新的一个实实在在值。

  • 专业角度: 内部含有'__iter__'方法的对象,可迭代对象。

  • 判断一个对象是不是可迭代对象: '__iter__' in dir(对象)

  • str list tuple dict set range

  • 优点:

    1. 存储的数据直接能显示,比较直观。

    2. 拥有的方法比较多,操作方便。

  • 缺点:

    1. 占用内存。

    2. 不能直接通过for循环,不能直接取值(索引,key)。

迭代器

迭代器的定义

  • 字面意思:更新迭代,器:工具:可更新迭代的工具。

  • 专业角度:内部含有'__iter__'方法并且含有'__next__'方法的对象就是迭代器。

  • 可以判断是否是迭代器:'__iter__' and '__next__' 在不在dir(对象)

判断一个对象是否是迭代器

  1 with open('文件1',encoding='utf-8',mode='w') as f1:
  2     print(('__iter__' in dir(f1)) and ('__next__' in dir(f1)))
  3 

猜你喜欢

转载自www.cnblogs.com/fkdby/p/11124824.html