元组和生成器定义区别
a = (1,2,3)c = (i for i in range(3))print(a)#(1, 2, 3)print(c)#
分析:使用dis模块查看编译过程
import disprint(dis.dis('(i for i in range(3))'))
文章插图
迭代()有关概念
从图片中可以看出,迭代对象、迭代器以及生成器并不是一个概念,通过一下程序结果可看出,虽然list、tuple…的对象都可以通过循环遍历,但它们都不是迭代器,只是在遍历过程中生成了迭代器后自动调用next 。
a=[1, 2, 3]a_iter = iter(a)b={1, 2, 3}b_iter = iter(b)c = (1, 2, 3) c_iter = iter(c)d = {'fir':1,'sec':2,'thir':3,}d_iter = iter(d)print(type(a))#print(type(a_iter)) #print(type(b))#print(type(b_iter)) #print(type(c))#print(type(c_iter))#print(type(d))#print(type(d_iter))#
可迭代对象在循环显示时也转换为了迭代器
import disprint(dis.dis('for _ in range(10):pass'))
可迭代对象()
能提供迭代器的任意对象 。列表,字典,,
迭代器()
a = [1,2,3]a_iter = iter(a)print('next显示:',next(a_iter))for i in a_iter:print(i)
从结果中发现,经过next后迭代器,后边循环遍历迭代器时会从后边开始 。
只要定义了next() 或者?法,它就是?个迭代器 。
迭代()
循环遍历(例如某个列表)的这个过程就是迭代 。
- 十五 Redis——Redis 持久化之 RDB 机制 和 AOF 机制
- Web前端学习笔记——VueJS-APP案例
- 已解决:[SPICE] Too many iterations without
- Proteus仿真时报错:[SPICE] Too many iterations
- 深度学习中Epoch,Batchsize,Iterations
- 深度学习概念之Epoch,Batch Size和Iterations
- 二 自动化测试:安卓机初探与Python实现andriod截图实例
- ARM40-A5应用——使用holer访问内网的ARM40
- 5G IC测试利器——TS-960e-5G
- 运算放大电路入门——虚断与虚断