说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
enumerate() 方法将计数器添加到 iterable ,每个元素连同计数(或者称为索引)组成元组,并返回它(枚举对象 enumerate object)。
enumerate() 的语法为:
enumerate(iterable, start=0)
enumerate() 方法采用两个参数:
返回:
方法将计数器添加到 iterable 并返回它。返回的对象是枚举对象。可以分别使用 list() 和 tuple() 方法将枚举对象转换为 list 和 tuple。例如:
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
list(enumerate(seasons, start=1))
# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
等价于:
def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1
一般在 for 循环中为列表增加索引,方便让这些索引数字介入计算:
l = ['Alice', 'Bob', 'Charlie']
# 一般的循环
for name in l:
print(name)
# Alice
# Bob
# Charlie
# 可以按索引编号和元素的顺序获取
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
上例那样,默认情况下,enumerate() 函数的索引从 0 开始。如果想要从 0 以外的数值开始,则对 enumerate() 函数的第二参数指定任意的开始数值。如从 1 开始时:
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
想制作序列号的字符串时很方便。比起从 1 开始 i+1,用 enumerate() 函数的第二参数指定开始数值更智能。
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
在 enumerate() 函数中没有指定增量step的参数,但是可以实现如下:
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie
更新时间:2021-06-18 18:09:16 标签:python enumerate