迭代器跟可迭代对象
可迭代对象:
内部含有__iter__方法的对象就是可迭代对象
优点:
1.比较直观
2.操作方法多
缺点:
1.十分耗内存
2.不能迭代取值(一般只能使用索引或者字典的key取值)
迭代器:
可以重复迭代的工具,内部含有__iter__方法以及__next__方法
特点:可以通过next方法取值,也可以通过for、while循环遍历
优点:
1.非常节省内存,迭代器每次取值都会在内存中释放掉上一个数据
2.惰性机制,next一次取一次值
缺点:
1.不直观,无法查看内部的所有数据,一次只能看一个数据
2.操作不灵活,只能不断向后取值
3.效率相对低
可迭代对象向迭代器转化: iter(可迭代对象)
1 # li是一个可迭代对象 2 li = [1, 2, 3, 4, 5] 3 if __name__ == '__main__': 4 # 通过iter()方法把可迭代对象转化成迭代器 5 it = iter(li) 6 # dir()可以查看某个对象的所有能调用的方法 7 print(dir(li).__len__()) # 46 8 print(dir(it).__len__()) # 27
浙公网安备 33010602011771号