python内置函数:iter、enumerate和next

iter、enumerate

共同点:都可以可以用来访问可迭代对象
区别:前者访问迭代对象时只返回元素,后者除了元素还会返回索引,或者叫做访问顺序。

iter
lis=[4,3,2,8]
for data in iter(lis):
    print("{}".format(data))

在这里插入图片描述

enumerate
lis=[4,3,2,8]
for index,data in enumerate(lis):
    print("第{}个数是:{}".format(index,data))

在这里插入图片描述

iter、next

其中iter(lis)是一个迭代器。前面的for in关键字会使得每次取一个迭代器中的元素出来,并且取完。

但是使用next不需要取完,而是只取一个元素,并且每取完一次,迭代器的指针会后移一位。所以next更加灵活,不过如果要遍历迭代器的每个元素,那么需要自己写循环。

lis=[4,3,2,8]
it=iter(lis)
nex=next(it)
while True:
    print(nex)
    nex=next(it,-1)
    if nex == -1:
        break
    

其中-1是默认值,当取完最后一个元素,又来取的时候,迭代器会返回-1,从而不会报错。如果不写-1,没有元素却来取,会报错。

我估计for in其实就是用next实现的。

注意,迭代对象是更加通用的,列表类型只是其中一种。迭代器没有len()方法,从而好像也没法索引来取元素,只能一步步next()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值