Python 的 `enumerate()` 函数有什么用途?


在本文中,我们将学习 `enumerate()` 函数以及它在 Python 中的用途。

`enumerate()` 函数是什么?

Python 的 `enumerate()` 函数接收一个数据集合作为参数,并返回一个枚举对象。

返回的枚举对象以键值对的形式呈现。键是每个项目的相应索引,值是项目本身。

语法

enumerate(iterable, start)

参数

  • iterable − 传入以便可以作为枚举对象返回的数据集合称为可迭代对象。

  • start − 正如其名称所示,枚举对象的起始索引由 `start` 定义。如果忽略此值,则它将第一个索引视为零,因为零是这里的默认值。

Python 中 `enumerate()` 函数的用途

何时使用 `enumerate()` 函数?

如果需要迭代值的索引,则使用 `enumerate()` 函数。

如何使用它?

`enumerate` 函数为列表中的每个可迭代值分配一个索引。

为什么要使用 `enumerate()` 函数?

使用迭代器时,我们总是需要知道已完成多少次迭代,即迭代次数。

但是,我们有一种 Pythonic 的方法来确定必要的迭代次数。语法如下:

enumerate(iterable, start)

如何在 Python 中使用 `enumerate()` 函数?

重要的是要注意返回后将使用哪种数据类型来存储枚举对象。

示例

以下程序在列表上使用 `enumerate()` 函数以获取包含索引的元组列表:

# input list
inputList = ["hello", "tutorialspoint", "python", "codes"]

# getting the enumerate object of the input list
enumerate_obj = enumerate(inputList)
print(enumerate_obj)

# converting the enumerate object into a list and printing it
print(list(enumerate_obj))

输出

执行上述程序后,将生成以下输出:

<enumerate object at 0x7f4e56b553c0>
[(0, 'hello'), (1, 'tutorialspoint'), (2, 'python'), (3, 'codes')]

使用 `enumerate()` 函数的第二个参数“起始索引”

示例

以下程序演示了如何在列表上应用 `enumerate()` 函数,包括第二个参数:

# input list
inputList = ["hello", "tutorialspoint", "python", "codes"]

# getting the enumerate object starting from the index 15
enumerate_obj = enumerate(inputList, 15)

# converting the enumerate object into the list and printing it
print(list(enumerate_obj))

输出

执行上述程序后,将生成以下输出:

[(15, 'hello'), (16, 'tutorialspoint'), (17, 'python'), (18, 'codes')]

在上面的示例中,我们在 `enumerate()` 函数中添加了 15 作为第二个参数。此第二个参数将指示枚举对象中键(索引)的起始索引,因此我们可以看到输出中的第一个索引为 15,第二个索引为 16,依此类推。

遍历枚举对象的 Python 代码

示例

以下程序演示了如何使用 for 循环遍历枚举对象并打印其每个元素:

# input list
inputList = ["hello", "tutorialspoint", "python", "codes"]

# getting the enumerate object
enumerate_obj = enumerate(inputList)

# traversing through each item in an enumerate object
for i in enumerate_obj:

    # printing the corresponding iterable item
    print(i)

输出

执行上述程序后,将生成以下输出:

(0, 'hello')
(1, 'tutorialspoint')
(2, 'python')
(3, 'codes')

在元组上使用 `enumerate()` 函数

示例

以下程序演示了如何在给定的输入元组上使用 `enumerate()` 函数:

# input tuple
inputTuple = ("hello", "tutorialspoint", "python", "codes")

# getting the enumerate object of the input tuple
enumerate_obj = enumerate(inputTuple)
print(enumerate_obj)

# converting the enumerate object into the list and printing it
print(list(enumerate_obj))

输出

执行上述程序后,将生成以下输出:

<enumerate object at 0x7fec12856410>
[(0, 'hello'), (1, 'tutorialspoint'), (2, 'python'), (3, 'codes')]

在字符串上使用 `enumerate()` 函数

使用 `enumerate` 函数迭代字符串数据以确定每个字符的索引。

示例

以下程序演示了如何在给定的输入字符串上使用 `enumerate()` 函数:

# input string
inputString = "python"

# getting the enumerate object of an input string
enumerate_obj = enumerate(inputString)

# converting the enumerate object into the list and printing it
print(list(enumerate_obj))

输出

执行上述程序后,将生成以下输出:

[(0, 'p'), (1, 'y'), (2, 't'), (3, 'h'), (4, 'o'), (5, 'n')]

在 `enumerate()` 函数中使用另一个参数

示例

以下程序演示了如何在 `enumerate()` 函数中使用另一个参数:

input_data = ('Hello', 'TutorialsPoint', 'Website')
for count, dataValue in enumerate(input_data,start = 50):
   print(count, dataValue)

输出

执行上述程序后,将生成以下输出:

(50, 'Hello')
(51, 'TutorialsPoint')
(52, 'Website')
  • `enumerate` 是 Python 的内置函数,它返回一个枚举对象。

  • 此函数返回一个枚举对象。

  • 要将可迭代对象传递给 `enumerate` 函数,首先尝试从枚举对象中检索数据,然后将其转换为 `list()`。结果,如上例所示,它返回一个包含迭代索引的元组列表。

结论

本文详细介绍了 Python 的 `enumerate()` 函数的应用。我们还学习了如何在各种 Python 数据类型和可迭代对象上使用它。此外,我们还学习了如何修改 `enumerate()` 函数的起始计数或索引。

更新于:2023年1月16日

浏览量:324

启动你的职业生涯

完成课程获得认证

开始学习
广告