python 使用enumerate()函数详解

本文详细介绍了Python的enumerate函数,如何在for循环中结合下标操作,以及其语法和使用示例。通过实例演示了如何优雅地遍历列表并获取元素及其对应的索引。此外,还涵盖了函数的参数设定,特别是起始索引的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、enumerate() 函数简介

enumerate()是python的内置函数,将一个可遍历iterable数据对象(如list列表、tuple元组或str字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。
函数返回一个enumerate对象,是一个可迭代对象。具体元素值可通过遍历取出。
函数语法为:

语法: enumerate(sequence, [start=0])

参数
sequence -- 一个序列、迭代器或其他支持迭代对象。
start -- 下标起始位置。
返回值
返回 enumerate(枚举) 对象。

函数参数有:

  • sequence是一个可迭代对象
  • start是一个可选参数,表示索引从几开始计数

二、使用enumerate()函数

(1)使用for循环

1

2

3

4

1、迭代列表时如何访问列表下标索引

ll=[22, 36, 54, 41, 19, 62, 14, 92, 17, 67]

for i in range(len(ll)):

    print(i, "=", ll[i])

(2)使用enumerate()

1

2

3

# 优雅版:

for index,item in enumerate(ll):

    print(index, "=",item)

此外,enumerate()函数还有第二个参数,用于指定索引的起始值

1

2

3

# 优雅版:

for index,item in enumerate(ll,10):

    print(index, "=",item)

### Python 中 `enumerate` 函数的用法与实例 #### 什么是 `enumerate`? `enumerate` 是 Python 的内置函数,用于在循环过程中同时获取列表或其他可迭代对象中的索引及其对应的值。它返回的是一个枚举对象,其中每个元素是一个 `(index, value)` 形式的元组。 其基本语法如下: ```python enumerate(iterable, start=0) ``` - **参数说明**: - `iterable`: 需要遍历的对象(如列表、字符串等)。 - `start`: 枚举计数起始位置,默认为 0[^1]。 --- #### 使用场景及示例 ##### 场景一:简单列举列表项并打印索引和值 通过 `enumerate` 可以轻松实现一边遍历列表一边记录当前项目的索引。 ```python fruits = ["apple", "banana", "cherry"] for index, fruit in enumerate(fruits): print(f"Index {index}: {fruit}") ``` 运行结果: ``` Index 0: apple Index 1: banana Index 2: cherry ``` 此方法相比手动维护索引更加简洁高效[^1]。 --- ##### 场景二:自定义起始索引 可以设置第二个参数来改变默认从零开始的行为。 ```python months = ["January", "February", "March"] for month_num, month_name in enumerate(months, start=1): print(f"{month_num}th Month is {month_name}.") ``` 输出将是: ``` 1st Month is January. 2nd Month is February. 3rd Month is March. ``` 这里我们将初始编号调整为了1而不是标准情况下的0[^2]。 --- ##### 场景三:结合 Pandas 数据框操作 当处理像 DataFrame 这样的结构化数据时,也可以利用 `enumerate` 来访问行或者列的信息。 假设我们有一个简单的DataFrame: ```python import pandas as pd df = pd.DataFrame({ 'A': [1, 2], 'B': [3, 4] }) print(df) # 输出原表 A B 0 1 3 1 2 4 ``` 如果想逐行列出每一行的数据以及它的序号,则可以用下面的方式完成: ```python for idx, row in enumerate(df.values): print(f'Row {idx}: ', list(row)) ``` 最终得到的结果会是这样的形式: ``` Row 0: [1, 3] Row 1: [2, 4] ``` 这展示了如何将Pandas DataFrames 转换成 NumPy 数组再配合 `enumerate` 实现更灵活的操作[^3]。 --- ##### 场景四:应用于深度学习模型开发前的数据预处理阶段 比如在一个自然语言处理项目里准备训练集的时候,可能需要知道每句话在整个语料库里的具体位置以便后续追踪错误样本等问题。此时就可以借助于 `enumerate` 达到目的。 假设有这样一段代码片段用来加载NER标注过的新闻标题作为输入特征X 和标签Y : ```python data_tuple_list = get_table('train_ner_news_title') df = pd.DataFrame(data_tuple_list, columns=['mid', 'x', 'y']) sentences = df['x'].tolist() labels = df['y'].tolist() for i, sentence in enumerate(sentences[:5]): print(f"Sentence No.{i+1}:{sentence}, Label:{labels[i]}") ``` 以上脚本选取了前五个句子连同它们各自的类别一起展示出来便于调试验证[^4]。 --- ### 总结 综上所述,`enumerate` 提供了一种优雅的方式来增强程序逻辑清晰度的同时减少冗余变量声明次数,在多种实际应用场合下都展现了其实用价值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jh035

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值