Python批量修改列表中的值:enumerate函数
介绍
enumerate常用语循环语句中的计数作用
enumerate可在列标前增加索引,或利用索引来完成循环或迭代中的任务
用for循环进行迭代
- 普通循环中迭代所有对象
values = ['a','b','c','d']
for i in values:
print(i)
- 输出
a
b
c
d
- 在这个for循环中,循环的对象是i,如果我们想在打印迭代对象的同时,为打印的值添加一个索引该怎么办?
- 完成这个任务的方法是创建一个变量来储存索引并在每次迭代时更新它
index=1
values = ['a','b','c','d']
for i in values:
print(index,i)
index += 1
- 输出结果
1 a
2 b
3 c
4 d
enumerate()函数的用法
语法:
enumerate(sequence, start=0)
enumerate()是一个内建函数,因此在任何版本的Python中都可以使用
index默认参数为0
values = ['a','b','c','d']
for count, value in enumerate(values):
print(count, value)
输出结果:
0 a
1 b
2 c
3 d
也可以从一开始,只需要将index改成start=1
for count, value in enumerate(values, start=1):
print(count, value)
输出结果:
1 a
2 b
3 c
4 d
练习:利用enumerate迭代方法找出一组数据的偶数项
def even_picker(iterable):
empty=[]
for i, value in enumerate(iterable, start=1):
if not i % 2:
empty.append(value)
return empty
even_picker([3,5,2,7,3,4,9,0])
输出结果
[5, 7, 4, 0]
极简写法:
def even_picker(iterable):
return [v for i, v in enumerate(iterable, start=1) if not i % 2]
even_picker([3,5,2,7,3,4,9,0])
输出结果
[5, 7, 4, 0]
希望对您有所帮助