Python基础之enumerate()函数用法详解

 更新时间:2025年12月03日 08:41:11   作者:Geoking.  
enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中,这篇文章主要介绍了Python基础之enumerate()函数用法的相关资料,需要的朋友可以参考下

一、enumerate()是什么?

emurate /ɪˈnjuːməreɪt/

中文名即为枚举

日常 Python 编程中,我们经常需要在遍历列表、元组或字符串时,同时获取元素的索引和值
如果你曾这样写过代码👇:

index = 0
for value in ['a', 'b', 'c']:
    print(index, value)
    index += 1

那恭喜你,是时候认识一个更优雅的 Python 内置函数——enumerate() 🎯。

enumerate() 是 Python 的内置函数,用于在 遍历可迭代对象时自动计数
它返回一个 枚举对象(enumerate object),其中每个元素是一个 (index, value) 元组。

二、基本语法

enumerate(iterable, start=0)

参数说明:

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

返回值:

  • 一个可迭代的 enumerate 对象

三、基本用法示例

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

for index, fruit in enumerate(fruits):
    print(index, fruit)

输出:

0 apple
1 banana
2 cherry

可以看到,enumerate() 自动为我们生成了索引。

四、自定义起始索引

有时候我们不希望从 0 开始计数,比如行号通常从 1 开始。

可以使用 start 参数来自定义:

for index, fruit in enumerate(fruits, start=1):
    print(f"第{index}个水果是 {fruit}")

输出:

第1个水果是 apple
第2个水果是 banana
第3个水果是 cherry

五、enumerate()的底层原理

enumerate() 实际上等价于下面这种写法:

def my_enumerate(iterable, start=0):
    n = start
    for elem in iterable:
        yield n, elem
        n += 1

它返回的是一个生成器(iterator),在循环中逐步生成索引和值,因此不会占用额外的内存。

六、与普通循环的对比

功能普通循环使用 enumerate()
需要手动维护索引✅ 是❌ 否
可读性一般更高
内存占用相似相似
推荐使用❌ 不推荐✅ 推荐

示例对比:

# 传统写法
for i in range(len(fruits)):
    print(i, fruits[i])

# enumerate 写法(更简洁)
for i, fruit in enumerate(fruits):
    print(i, fruit)

下次你再需要索引和元素同时出现时,
记得:

不要再用 range(len(...)),直接用 enumerate()

七、结合条件语句的高级用法

enumerate() 常常与条件判断搭配使用,用来查找特定元素的位置。

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

for i, num in enumerate(nums):
    if num == 30:
        print(f"找到了 30,在索引 {i}")

输出:

找到了 30,在索引 2

八、与其他可迭代对象一起使用

enumerate() 不仅能用于列表,也能用于 字符串、元组、集合、字典(遍历 key 或 value) 等。

遍历字符串:

for i, ch in enumerate("Python"):
    print(i, ch)

输出:

0 P
1 y
2 t
3 h
4 o
5 n

遍历字典的键:

data = {'a': 1, 'b': 2, 'c': 3}

for i, key in enumerate(data):
    print(i, key, data[key])

输出:

0 a 1
1 b 2
2 c 3

九、将枚举对象转换为列表或字典

enumerate() 返回的是一个枚举对象,我们可以直接转换为其他类型。

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

# 转换为列表
print(list(enumerate(fruits)))
# [(0, 'apple'), (1, 'banana'), (2, 'cherry')]

# 转换为字典
print(dict(enumerate(fruits, start=1)))
# {1: 'apple', 2: 'banana', 3: 'cherry'}

这在数据映射索引管理时非常实用。

📚 参考资料

总结

到此这篇关于Python基础之enumerate()函数用法的文章就介绍到这了,更多相关Python基础enumerate()函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pyqt6中QMediaPlayer音视频播放的使用

    Pyqt6中QMediaPlayer音视频播放的使用

    QMediaPlayer 是 PyQt6 中用于音视频播放的类,提供了对多种媒体格式的支持,能够播放本地文件、流媒体、音频以及视频,本文就来介绍一下Pyqt6中QMediaPlayer音视频播放的使用,感兴趣的可以了解一下
    2025-05-05
  • numpy增加维度、删除维度的方法

    numpy增加维度、删除维度的方法

    本文主要介绍了numpy增加维度、删除维度的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python基于均值漂移算法和分水岭算法实现图像分割

    Python基于均值漂移算法和分水岭算法实现图像分割

    图像分割是将图像分成若干具有独特性质的区域并提取感兴趣目标的技术和过程。这篇文章将详细讲解基于均值漂移算法和分水岭算法的图像分割,需要的可以参考一下
    2023-01-01
  • Python clip与range函数保姆级使用教程

    Python clip与range函数保姆级使用教程

    本文主要和大家介绍了详解Python中clip与range函数的用法,小编觉得挺不错的,现在分享给大家,也给大家做个参,希望能帮助到大家
    2022-06-06
  • Kali Linux安装ipython2 和 ipython3的方法

    Kali Linux安装ipython2 和 ipython3的方法

    今天小编就为大家分享一篇Kali Linux安装ipython2 和 ipython3的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python使用psycopg2操作PostgreSQL数据库的完全指南

    Python使用psycopg2操作PostgreSQL数据库的完全指南

    psycopg2 是 Python 中最流行的 PostgreSQL 数据库适配器,它实现了 Python DB API 2.0 规范,同时提供了许多 PostgreSQL 特有的功能支持,下面我们来看看如何使用psycopg2操作PostgreSQL进行连接和增删改查操作吧
    2025-06-06
  • pycharm 如何查看某一函数源码的快捷键

    pycharm 如何查看某一函数源码的快捷键

    这篇文章主要介绍了在pycharm中实现查看某一函数源码的快捷键,具有很好的参考价值,希望能给大家做个参考,如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • 用python写的一个wordpress的采集程序

    用python写的一个wordpress的采集程序

    在学习python的过程中,经过不断的尝试及努力,终于完成了第一个像样的python程序,虽然还有很多需要优化的地方,但是目前基本上实现了我所要求的功能,需要的朋友可以参考下
    2016-02-02
  • Python实现数据库表的监控警告的项目实践

    Python实现数据库表的监控警告的项目实践

    本文主要介绍了使用Python 实现对数据库表的监控告警功能, 并将告警信息通过钉钉机器人发送到钉钉群,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • django xadmin 管理器常用显示设置方式

    django xadmin 管理器常用显示设置方式

    这篇文章主要介绍了django xadmin 管理器常用显示设置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03

最新评论