欢迎访问宙启技术站
智能推送

Python中的enumerate函数:了解Python中的enumerate()函数, 它与range()函数的区别, 各种方式的应用与特点。

发布时间:2023-05-23 08:44:59

Python是一种解释型高级编程语言,在编写代码时它提供了许多内置函数,以便我们更有效地处理参数。其中一个非常有用的内置函数是enumerate(),该函数可以在循环中同时迭代索引和元素。

enumerate()函数可以接受一个可迭代对象(如列表、元组和字符串),并将其转换为一个枚举对象。枚举对象包含一组元素,其中每个元素都是元组类型,它包含一个索引和一个值。

以下是使用enumerate()函数的基本语法:

enumerate(iterable, start=0)

在这里,iterable是指要迭代的对象,而start是要开始迭代的起始索引。默认情况下,起始索引为0。

下面是一个简单的例子,展示了如何使用enumerate()函数:

lst = ['apple', 'mango', 'banana']
for index, value in enumerate(lst):
    print(index, value)

所输出的结果将会是:

0 apple
1 mango
2 banana

它为我们提供了列表中每个元素的索引和值的迭代遍历。

上述程序的输出结果告诉我们, 个元素的索引为0,其值为“apple”。接下来是第二个元素,索引为1,值为“mango”,最后是第三个元素,索引为2,值为“banana”。

下面是更多高级的用法和特点:

## 当枚举对象和for迭代器组合使用时,可以自动进行索引计数。

例如:

lst = ['apple', 'mango', 'banana']
for i in enumerate(lst):
    print(i)

程序将会输出:

(0, 'apple')
(1, 'mango')
(2, 'banana')

### range()函数和enumerate()函数的区别

这两个函数工作方式的基本区别在于,range()生成连续的数字序列,而enumerate()将可迭代对象转换为枚举对象。range()函数用于生成数字序列,它返回的是一个迭代器的对象。我们可以使用它来遍历一组数字,而无需使用循环语句生成它们。

## 迭代自定义列表

Qwerty是一个自定义的列表,由于列表内的元素是字符串类型,我们可以很容易地使用enumerate()函数遍历它们。下面是一个不带起始索引的枚举函数演示示例:

qwerty = ['this', 'is', 'a', 'nice', 'day']
for i, v in enumerate(qwerty):
    print(i, v)

该程序输出:

0 this
1 is
2 a
3 nice
4 day

## 为枚举值提供起始索引

如果您想为枚举值提供起始索引,可以在enumerate()函数的第二个参数中传递您要使用的值。

下面是一个示例:

qwerty = ['this', 'is', 'a', 'nice', 'day']
for i, v in enumerate(qwerty, 100):
    print(i, v)

程序输出如下:

100 this
101 is
102 a
103 nice
104 day

## 枚举内嵌循环

枚举函数可以很好地嵌套在循环内部。如果您有多个列表,并且您需要按顺序遍历这些列表,那么可以使用zip()函数来进行迭代:

list1 = ['apple', 'mango', 'banana']
list2 = [70, 80, 75]
for i, (x, y) in enumerate(zip(list1, list2)):
    print(i, x, y)

程序输出如下:

0 apple 70
1 mango 80
2 banana 75

这个程序中我们使用zip()将两个列表拼接在一起,然后使用enumerate()函数来迭代它们。在for循环内设置两个变量x和y,以分别匹配列表1和列表2中的元素。我们使用i来枚举这些元素,并以整洁的方式打印它们。

总之,enumerate()函数是Python编程语言中的一个非常有用的函数。它能够为我们提供一个方便、简洁、高效的枚举工具。它是迭代器的一种形式,在处理每个元素时自动进行元素索引计数。不仅能够为我们节省时间和代码长度,而且还让代码更加易于维护和阅读。