2022.12.28 迭代器和生成器
11.python高阶内容:迭代器和生成器
11.1 迭代器(literator)
11.1.1 迭代器说明
迭代器指的就是支持迭代的容器。更确切的说,是支持迭代的容器类对象,这里的容器可以是列表、元组等这些 Python 提供的基础容器,也可以是自定义的容器类对象,只要该容器支持迭代即可。
存在的意义:这种需要先保存一个 items
的列表,但当你做机器学习或者数据处理的时候, 如果这个items
列表的数据量很大,就会非常占内存。所以生成器的一个重要目的就是避免在内存中记录这样的一个大数据,避免把内存撑爆。
11.1.2 迭代器使用
从技术上讲,在 Python 中,迭代器是实现迭代器协议的对象,它包含方法 __iter__()
和 __next__()
。
列表、元组、字典和集合都是可迭代的对象。
【实例1】:从元组返回一个迭代器,并打印每个值
mytuple = ("apple", "banana", "cherry")
myit = iter(mytuple)
print(next(myit))
print(next(myit))
print(next(myit))
apple
banana
cherry
【实例2】:"字符串"
也是可迭代的对象,包含一系列字符
mystr = "banana"
myit = iter(mystr)
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit)</