Python中的enumerate()函数及其应用示例
enumerate()是Python内置函数之一,用于遍历序列(列表、元组、字符串等)中的元素并同时获取它们的索引值。其语法结构如下:
enumerate(sequence, [start=0])
参数说明:
sequence:需要遍历的序列。
start:指定开始遍历的索引值,若未指定,则默认从0开始。
该函数返回一个枚举类型的对象,可以通过list()转为列表或遍历获取其中的元素。
示例:
# 普通遍历列表
fruits = ['apple', 'banana', 'orange', 'pear']
for i in range(len(fruits)):
print(i, fruits[i])
# 0 apple
# 1 banana
# 2 orange
# 3 pear
# 使用enumerate()函数遍历列表,同时获取索引值和元素
fruits = ['apple', 'banana', 'orange', 'pear']
for i, fruit in enumerate(fruits):
print(i, fruit)
# 0 apple
# 1 banana
# 2 orange
# 3 pear
# 指定从2索引开始遍历
fruits = ['apple', 'banana', 'orange', 'pear']
for i, fruit in enumerate(fruits, 2):
print(i, fruit)
# 2 apple
# 3 banana
# 4 orange
# 5 pear
除了遍历序列外,enumerate()函数还可以用于为序列中的元素编号,例如:
# 为列表添加编号,生成字典
items = ['apple', 'banana', 'orange', 'pear']
dict_items = dict(enumerate(items, 1))
print(dict_items)
# {1: 'apple', 2: 'banana', 3: 'orange', 4: 'pear'}
# 生成列表,元素由数字和字符串组成
data = ['1', '2', '3', 'abc', '4', 'def', '5']
new_data = [int(val) if val.isdigit() else val for val in data]
print(new_data)
# [1, 2, 3, 'abc', 4, 'def', 5]
在以上示例中,使用了enumerate()函数来为列表元素添加编号,并将其转换为字典;也可以通过列表推导式,将其中的数字字符串转为整型,非数字字符串不做处理。
总之,enumerate()函数是Python中非常常用的函数之一,可以优化代码,提高效率,学好了,可以让你更加轻松地处理各种序列数据。
