1.迭代器
1.什么是迭代器(iter)
迭代器是容器型数据类型,只能通过类型转换和生成器来获得迭代器对象
迭代器存储数据的特点:同时可以保存多个数据,没有办法直接查看,而是需要先将数据从迭代器中取出(取出后不能再放回去)
所有的容器都可以转换成迭代器
2.获取迭代器中的元素
无论通过什么方式,只要将迭代器中某个元素拿到了,这个元素就不再存在了
1.遍历
2.获取单个元素
next(迭代器对象) - 获取迭代器中的元素(最前面的那个元素)
2.生成式
生成式就是生成器的简写
列表推导式的[]变成()就变成了生成式
# 列表推导式:
list1 = [x + 2 for x in range(5)]
print(list1)
# 生成式:
gen1 = (x + 2 for x in range(5))
print(list(gen1))
3.生成器
1.什么是生成器
生成器就死迭代器
调用一个带yield 关键字的函数就可以生成一个生成器
2.生成器产生数据
生成器能生产多少数据就看执行生成器对应的函数的函数体会遇到几次yield。yield后面表达式的值就是生成器能够产生的数据
3.生成器产生数据的原理
当获取生成器元素的时候,会自动调用生成器关联的函数,第一次从函数开始的地方开始执行,直到遇到yield为止,并且将yield后面的值作为获取到的数据,后面每次都是从上一次结束的位置开始执行,直到遇到yield,如果从开始执行到函数结束都没有遇到yield,就不会产生数据