python Iterator迭代器

本文深入探讨了迭代器的概念,包括如何判断一个对象是否可迭代,迭代器的定义与使用,以及如何通过不同方法调用迭代器。同时,文章详细解释了迭代器的特性,如节省空间和迭代无限数据的能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.迭代器
能被next调用,并不断返回下一个值的对象,叫做迭代器(迭代对象)
概念:迭代器指可以迭代取值的工具,迭代是一个重复的过程,每一次迭代是根据上一次迭代的值继续
特征:不依赖索引,使用next指针迭代所有数据,一次迭代一个值,可以节省空间,迭代无限的数据
(1)可迭代对象
判断可迭代对象的方法:
1)使用dir可以查看对象的所有成员,成员中包含’‘iter’'可判断为可迭代对象
2)调用Iterable判断可迭代对象

##方法一 通过dir函数获取成员判定
lst=[1,2,3,4,5]
for i in lst:
	print(i)
res=dir(lst)
print('__iter__' in res)
##方法二 通过引入Iterable判定
from collections import Iterable
res=isinstance(lst,Iterable)
print(res)

(2)迭代器的定义
1)iter(iterable)
2)iterable.iter()

res=iter(lst)
print(next(res))
res=lst.__iter__()
print(next(res))

(3)迭代器的判定
1)成员中包含’‘iter’‘和’’"next"可判断为迭代器
2)引用Iterator进行判定

##方式一:通过成员判定
res=iter(lst)
res1='__iter__' in dir(res) and '__next__' in dir(res)
print(res1)

##方式二:通过引入Iterator
from collections import Iterator
res1=isinstance(res,Iterator)
print(res1)

(4)迭代器的调用
1)通过next(迭代器)调用
2)迭代器.next()调用
迭代器通过next方法调用数据是单项不可逆的过程

res=iter(lst)
res1=next(res)

(5)迭代器的重置

res=iter(lst)

(5)迭代调用的其他方法

#1.通过next(迭代器)调用数据
res1=next(res)
print(res1)
res1=next(res)
print(res1)
res1=next(res)
print(res1)
res1=next(res)
print(res1)
res1=next(res)
print(res1)
#res1=next(res) 报错,获取个数超过迭代器元素个数
#print(res1)

##2.通过for遍历迭代器
res=iter(lst)
for i in res:
	print(i)

##3.通过for + next调用迭代器元素
res=iter(range(100000))
for i in range(10):
	print(next(res))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值