可迭代对象和迭代器的区别
可迭代对象
字面意思:可以进行循环更新的一个实实在在值。
专业角度: 内部含有
'__iter__'
方法的对象,可迭代对象。判断一个对象是不是可迭代对象:
'__iter__'
in dir(对象)str list tuple dict set range
优点:
存储的数据直接能显示,比较直观。
拥有的方法比较多,操作方便。
缺点:
占用内存。
不能直接通过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