iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >详解Python中enumerate函数的使用
  • 242
分享到

详解Python中enumerate函数的使用

2024-04-02 19:04:59 242人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

python 的 enumerate() 函数就像是一个神秘的黑箱,你无法简单地用一句话来概括这个函数的作用与用法。 enumerate() 函数属于非常有用的高级用法,而对于这一点

python 的 enumerate() 函数就像是一个神秘的黑箱,你无法简单地用一句话来概括这个函数的作用与用法。

enumerate() 函数属于非常有用的高级用法,而对于这一点,很多初学者甚至中级学者都没有意识到。这个函数的基本应用就是用来遍历一个集合对象,它在遍历的同时还可以得到当前元素的索引位置。

我们看一个例子:

names = ["Alice","Bob","Carl"]
for index,value in enumerate(names):
    print(f'{index}: {value}')

这段代码会输入如下内容:

0: Alice
1: Bob
2: Carl

正如你所看到的,这个循环遍历了names列表的所有元素,并通过增加从零开始的计数器变量来为每个元素生成索引。

[如果您想知道上面例子中使用的f’…'字符串语法,这是Python 3.6及更高版本中提供的一种新的字符串格式化技巧。]

用enumerate()让你的循环更加Python化

那么为什么用enumerate()函数去保存运行中的索引很有用呢?

我发现,有很多从C或Java背景转过来的新的python开发人员有时使用下面这种range(len(…))方法来保存运行中每个元素的索引,同时再用for循环遍历列表:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程pdf电子书!
'''
# 警告: 不建议这么写
for i in range(len(my_items)):
    print(i, my_items[i])

通过巧妙地使用enumerate()函数,就像我在上面的“names”例子中写的那样,你可以使你的循环结构看起来更Pythonic和地道。

你不再需要在Python代码中专门去生成元素索引,而是将所有这些工作都交给enumerate()函数处理即可。这样,你的代码将更容易被阅读,而且减少写错代码的影响。(译者注:写的代码越多,出错几率越高,尽量将自己的代码看起来简洁,易读,Pythonic,才是我们的追求)

修改起始索引

另一个有用的特性是,enumerate()函数允许我们为循环自定义起始索引值。enumerate()函数中接受一个可选参数,该参数允许你为本次循环中的计数器变量设置初始值:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
names = ["Alice","Bob","Carl"]
for index,value in enumerate(names,1):
    print(f'{index}: {value}')

在上面的例子中,我将函数调用改为enumerate(names, 1),后面的参数1就是本次循环的起始索引,替换默认的0:

1: Alice
2: Bob
3: Carl

OK,这段代码演示的就是如何将Python的enumerate()函数默认0起始索引值修改为1(或者其他任何整形值,根据需求去设置不同值)

enumerate()背后是如何工作的

你可能想知道enumerate()函数背后是如何工作的。事实上他的部分魔法是通过Python迭代器来实现的。意思就是每个元素的索引是懒加载的(一个接一个,用的时候生成),这使得内存使用量很低并且保持这个结构运行很快。

请看如下代码:

>>> names = ['Alice', 'Bob', 'Carl']
>>> enumerate(names)
<enumerate object at 0x1057f4120>

在上面这个代码片段中,正如你所见,我使用了和前面一样的示例代码。但是,调用enumerate()函数并不会立即返回循环的结果,而只是在控制台中返回了一个enumerate对象。

正如你所看到的,这是一个“枚举对象”。它的确是一个迭代器。就像我说的,它会在循环请求时懒加载地输出每个元素。

为了验证,我们可以取出那些“懒加载”的元素,我计划在这个迭代器上调用Python的内置函数list()。

>>> list(enumerate(names))
[(0, 'Alice'), (1, 'Bob'), (2, 'Carl')]

对于输入list()中的每个enumerate()迭代器元素,迭代器会返回一个形式为(index,element)的元组作为list的元素。在典型的for-in循环中,你可以利用Python的数据结构解包功能来充分利用这一点特性:

for index, element in enumerate(iterable):
    # ...

总结:Python中的enumerate函数 - 关键点

  • enumerate是Python的一个内置函数。你应该充分利用它通过循环迭代自动生成的索引变量。
  • 索引值默认从0开始,但也可以将其设置为任何整数。
  • enumerate函数是从2.3版本开始被添加到Python中的
  • Python的enumerate函数可以帮助你编写出更加Pythonic和地道的循环结构,避免使用笨重且容易出错的手动生成索引。
  • 为了充分利用enumerate的特性,一定要研究Python的迭代器和数据结构解包功能。

到此这篇关于详解Python中enumerate函数的使用的文章就介绍到这了,更多相关Python enumerate内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 详解Python中enumerate函数的使用

本文链接: https://www.lsjlt.com/news/120218.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python 使用enumerate()函数详解
    目录一、enumerate() 函数简介二、使用enumerate()函数(1)使用for循环(2)使用enumerate()一、enumerate() 函数简介 enumerate...
    99+
    2024-04-02
  • 详解Python中enumerate函数的使用
    Python 的 enumerate() 函数就像是一个神秘的黑箱,你无法简单地用一句话来概括这个函数的作用与用法。 enumerate() 函数属于非常有用的高级用法,而对于这一点...
    99+
    2024-04-02
  • python 使用enumerate()函数详解
    一、enumerate() 函数简介 enumerate()是python的内置函数,将一个可遍历iterable数据对象(如list列表、tuple元组或str字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。 ...
    99+
    2023-09-08
    python 开发语言
  • python中enumerate函数如何使用
    在Python中,`enumerate()`函数用于将一个可迭代对象(如列表、元组或字符串)组合为一个索引序列和对应的值序列。`en...
    99+
    2023-09-20
    python
  • python如何使用enumerate()函数
    小编给大家分享一下python如何使用enumerate()函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!enumerate()enumerate():该函数...
    99+
    2023-06-03
  • python中enumerate函数怎么使用
    在python中使用enumerate()函数的方法enumerate:enumerate()函数的作用是用于将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标。enumerate()函数语法:enumerate(sequen...
    99+
    2024-04-02
  • python如何使用Enumerate函数
    这篇文章给大家分享的是有关python如何使用Enumerate函数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Enumerate函数使用4的例子,我们希望按顺序输出一个列表中的所有元素,我们可以使用下面方式:...
    99+
    2023-06-27
  • 怎么在python使用enumerate函数
    这期内容当中小编将会给大家带来有关怎么在python使用enumerate函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专...
    99+
    2023-06-14
  • python常用函数—enumerate
    enumerate() 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值的元组。 使用拆包,可以单独获得索引和值。 拆包 A = (11,22) A...
    99+
    2023-01-30
    函数 常用 python
  • python 函数enumerate用法
        在需要遍历数列时,通常做法为:for i in range (0 , len (list )):      print i , list [ i ]    而enumerate函数则可以优雅的解决此类问题,首先看下它的定义:def ...
    99+
    2023-01-31
    函数 python enumerate
  • python中enumerate函数有什么用
    小编给大家分享一下python中enumerate函数有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!enumerate函...
    99+
    2024-04-02
  • Python中的枚举函数enumerate()的具体用法
    相比于range,list等简易单词,enumerate仅凭外形都不太让人愿意用。事实上,enumerate还是很好用的。 enumerate()是python的内置函数、适用于py...
    99+
    2024-04-02
  • Python中的 enumerate和zip详情
    目录前言1. enumerate 方法2. zip 方法总结前言 我们在上一期学习了关于Python 迭代器Iterator详情相关的概念,满足迭代器需要符合两个条件 实现...
    99+
    2024-04-02
  • Python的函数使用详解
    目录前言1 跳出循环-break2 python函数2.1 内置函数2.2 自定义函数2.3 main函数前言 在两种python循环语句的使用中,不仅仅是循环条件达到才能跳出循环体...
    99+
    2024-04-02
  • 使用Python的enumerate()函数给列表添加索引
    使用Python的enumerate()函数给列表添加索引,具体代码示例如下:在Python中,经常需要对列表进行遍历,并同时获取元素的索引值。为了方便处理这种情况,Python提供了enumerate()函数,可以一行代码解决问题。enu...
    99+
    2023-11-18
    Python 索引 enumerate()
  • python如何在for循环语句中使用Enumerate()枚举函数
    小编给大家分享一下python如何在for循环语句中使用Enumerate()枚举函数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在for循环语句中使用Enumerate()枚举函数用enumerate()函数获取可迭代...
    99+
    2023-06-27
  • 详解Python中的split()函数的使用方法
    函数:split() Python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list) os.path.split():...
    99+
    2023-09-26
    数学建模
  • Python中的数组拼接函数——np.concatenate使用详解
    Python中的数组拼接函数——np.concatenate使用详解 在Python的numpy库中,提供了一个用于数组拼接的函数——np.concatenate。该函数可以将多个数组沿一个指定的轴方...
    99+
    2023-09-01
    python numpy 数据分析 Python
  • 详解Python之find函数的使用
    目录          一、find函数的官方定义          二、find函数的详细函数使用解释 一、find函数的官方定义 首先,Python的find函数多用在字符串的处理上,也是Python计算机二级的小考点。 定义:P...
    99+
    2023-10-12
    python
  • Python的函数使用示例详解
    目录1 跳出循环-break2 python函数2.1 内置函数2.2 自定义函数2.3 main函数在两种python循环语句的使用中,不仅仅是循环条件达到才能跳出循环体。所以,在...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作