如何使用enumerate装饰?

本文介绍了Python中enumerate装饰的使用,装饰后会得到由index和元素组成的tuple。还讲解了捕获迭代终止异常的方法,使用try…except模板。此外,涉及计数、repeat函数的用法,以及yield返回值的操作,帮助理解列表对齐等相关内容。

如何使用enumerate装饰?今天番茄加速就来讲一下。在这里插入图片描述

enumerate装饰

for i, it in enumerate(iterators):

iterators[i] = repeat(fillvalue)

enumerate装饰后会得到一个由index和元素本身组成的tuple,举个例子:

In [1]: for i,ele in enumerate([9,4,2,5,8]):

…: print((i,ele))

…:

(0, 9)

(1, 4)

(2, 2)

(3, 5)

(4, 8)

此处使用enumerate,因后面先遍历完的iter(a),为保证和iter(b)个数对齐,需要填充fillvalue值,需要知道a的index,此处为0.

捕获迭代终止异常

try:

value = next(it)

except StopIteration:

try… except是异常捕获的标准模板,next(it)第一次执行返回it的第一个元素,a=[1,2,3],所以value值为1.

计数

num_active表示当前存活的列表个数,一旦一个列表迭代到终点,num_active立即减1

num_active -= 1

repeat

iterators[i] = repeat(fillvalue)

repeat是itertools模块内另一个函数,如果times为默认值,则表示重复无限次,此处是一个repeat的典型用法。此处稍加注意,不要以为times参数默认值为1,或者不理解为什么要无限次重复,记住这种用法。

此处,repeat返回一个无限次重复fillvalue值的迭代器,并赋值给此时触发StopIteration异常的列表。此处就是iter(a),令其指向repeat创建的迭代器。

yield返回值

value = fillvalue

values.append(value)

yield tuple(values)

第一句,是在触发StopIteration时,将默认值fillvalue赋给value,values保存住列表对齐后位置的元素,第一次for退出时,values内值为[1,4]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值