Python技巧(enumerate)


>>> i = 0
>>> seq = ['one', 'two', 'three']
>>> for element in seq:
... seq[i] = '%d: %s' % (i, seq[i])
... i += 1
...
>>> seq
['0: one', '1: two', '2: three']


>>> seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
... seq[i] = '%d: %s' % (i, seq[i])
...
>>> seq
['0: one', '1: two', '2: three']


>>> def _treatment(pos, element):
... return '%d: %s' %(pos, element)
...
>>> seq = ['one', 'two', 'three']
>>> [_treatment(i, e1) for i, e1 in enumerate(seq)]
['0: one', '1: two', '2: three']


最后一种方式更容易矢量化,因为它共享了基于序列中单个项目的小函数。
每当要对序列中的内容进行循环处理时,就应该尝试用List comprehensions来代替它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值