python进阶:深入理解迭代器和生成器
2023-12-15 16:14:14
iterator & generator
一、容器、可迭代对象和迭代器
1、容器
- python中一切皆对象,对象的抽象就是类,而对象的集合就是容器。列表(list:[0,1,2]),元组(tuple:(0,1,2)),字典(
dict:{0:0,1:1,2:2}),集合(set:set([0,1,2]))都是容器 - 容器可以简单理解为多个元素在一起的单元,不同容器的区别就是内部数据结构的实现方法
2、可迭代对象
- 所有的容器都是可迭代的,也就是可迭代对象,可迭代可以想象成买苹果,卖家并不会告诉你有多少库存,每次你告诉卖家你要一个苹果,然后卖家采取行为;要么给你一个苹果,要么告诉你,苹果已经卖完了,你并不需要知道,卖家仓库是怎么摆放苹果的
3、迭代器
- 迭代器(iterator)提供了一个next的方法。调用这个方法后,要么得到容器的下一个对象,要么得到一个Stopiteration的错误(苹果卖完了)
- 可迭代对象并不等于迭代器,可迭代对象通过iter()函数返回一个迭代器,再通过next()函数就可以实现遍历。我们常用的for循环将这个过程隐式化了
l1 = [1,2,3,4]
print(next(l1))
上述代码会报错:TypeError:‘list’ object is not an iterator,因为l1只是一个可迭代对象,并没有返回迭代器
l1 = [1,2,3,4]
l2 = iter(l1)
print(l2
文章来源:https://blog.csdn.net/nzbing/article/details/135012223
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!