迭代器跟可迭代对象

可迭代对象:

  内部含有__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

 

posted @ 2019-11-01 21:46  林三点  阅读(91)  评论(0)    收藏  举报