Python 内置 enumerate函数用法举例和典型使用场景

Python 的内置函数 enumerate 用于迭代一个可迭代对象(如列表、元组、字符串等)时,返回一个索引和值的元组。它常用于需要在遍历数据时同时获得元素的索引和内容的场景。

下面的内容比较全,可以直接参考目录找自己需要的用法。

目录

语法

基本用法

示例 1:对列表使用 enumerate

示例 2:修改起始索引

高级用法

示例 3:对字符串使用 enumerate

示例 4:对元组使用 enumerate

示例 5:对字典使用 enumerate

结合 enumerate 使用的典型场景

1. 查找元素及其索引

2. 同时更新索引和值

3. 绘制图形时使用 enumerate

总结

enumerate 的优点

典型使用场景


语法

enumerate(iterable, start=0)
  • 参数说明

    • iterable:可迭代对象(如列表、字符串、元组等)。
    • start:索引的起始值,默认是 0。
  • 返回值

    • 一个 enumerate 对象,每次迭代返回一个包含索引和对应元素的元组 (index, element)

基本用法

示例 1:对列表使用 enumerate

fruits = ["apple", "banana", "cherry"]

# 使用 enumerate 遍历列表
for index, fruit in enumerate(fruits):
    print(f"索引 {index}: {fruit}")

输出:

索引 0: apple
索引 1: banana
索引 2: cherry

示例 2:修改起始索引

fruits = ["apple", "banana", "cherry"]

# 将索引起始值改为 1
for index, fruit in enumerate(fruits, start=1):
    print(f"索引 {index}: {fruit}")

输出:

索引 1: apple
索引 2: banana
索引 3: cherry

高级用法

示例 3:对字符串使用 enumerate

text = "hello"

for index, char in enumerate(text):
    print(f"字符 {char} 的索引是 {index}")

输出:

字符 h 的索引是 0
字符 e 的索引是 1
字符 l 的索引是 2
字符 l 的索引是 3
字符 o 的索引是 4

示例 4:对元组使用 enumerate

data = (100, 200, 300)

for idx, value in enumerate(data):
    print(f"索引 {idx}: 值 {value}")

输出:

索引 0: 值 100
索引 1: 值 200
索引 2: 值 300

示例 5:对字典使用 enumerate

#对字典的键或值添加索引。
scores = {"Alice": 85, "Bob": 90, "Charlie": 95}

# 遍历字典的键值对并添加索引
for idx, (name, score) in enumerate(scores.items(), start=1):
    print(f"{idx}. {name}: {score}")

输出:

1. Alice: 85
2. Bob: 90
3. Charlie: 95

结合 enumerate 使用的典型场景

1. 查找元素及其索引

在列表中查找特定元素的位置。

numbers = [10, 20, 30, 40, 50]

# 查找值为 30 的索引
for idx, num in enumerate(numbers):
    if num == 30:
        print(f"值 30 的索引是 {idx}")
        break

输出:

值 30 的索引是 2

2. 同时更新索引和值

在遍历时,更新列表中每个元素的值。

numbers = [10, 20, 30, 40, 50]

# 将每个值加上其索引
for idx, num in enumerate(numbers):
    numbers[idx] = num + idx

print(numbers)

输出:

[10, 21, 32, 43, 54]

3. 绘制图形时使用 enumerate

import matplotlib.pyplot as plt

# 数据点
y = [10, 20, 30, 40]

# 绘制折线图
plt.plot(y, marker='o', label="Data")

# 为每个数据点添加索引标签
for idx, value in enumerate(y):
    plt.text(idx, value + 1, f"{idx}: {value}", ha='center')

plt.title("Line Plot with Index Labels")
plt.xlabel("Index")
plt.ylabel("Value")
plt.legend()
plt.show()

结果:

总结

enumerate 的优点

  1. 方便地获取索引和值:避免手动维护计数器变量(如 i += 1)。
  2. 代码简洁易读:尤其是在循环中,同时需要索引和值时。
  3. 支持起始索引设置:通过 start 参数灵活调整索引的起点。

典型使用场景

  1. 遍历列表、元组、字符串时,同时需要索引和值。
  2. 数据更新或标注索引。
  3. 查找特定元素的位置。
  4. 数据处理(如生成包含索引和值的字典或列表)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值