enumerate()
是 Python 中的一个内置函数,允许您在循环迭代时拥有一个自动计数器。
Python enumerate()
功能#
The enumerate()
函数采用以下形式:
enumerate(iterable, start=0)
该函数接受两个参数:
-
iterable
- 支持迭代的对象。
-
start
- 计数器开始的数字。该参数是可选的。默认情况下,计数器从 0 开始。
enumerate()
返回一个枚举对象,您可以在其上调用__next__()
(or next()
在 Python 2) 方法中获取tuple包含计数和可迭代的当前值。
这是如何使用创建元组列表的示例list()
以及如何循环迭代:
directions = ["north", "east", "south", "west"]
list(enumerate(directions))
for index, value in enumerate(directions):
print("{}: {}".format(index, value))
[(0, 'north'), (1, 'east'), (2, 'south'), (3, 'west')]
0: north
1: east
2: south
3: west
如果从零开始的索引不适合您,请为枚举选择另一个起始索引:
directions = ["north", "east", "south", "west"]
list(enumerate(directions, 1))
[(1, 'north'), (2, 'east'), (3, 'south'), (4, 'west')]
The enumerate()
函数适用于任何可迭代对象。可迭代对象是一个可以迭代的容器。简而言之,它意味着一个可以用 a 循环的对象for环形。 Python 中的大多数内置对象(例如字符串、列表和元组)都是可迭代的。
使用以下命令编写更多 Python 代码enumerate()
#
蟒蛇的for
循环与传统的C风格完全不同for
循环在许多编程语言中都可用。这for
Python中的循环相当于其他语言的循环foreach
loop.
Python 新开发人员在处理可迭代对象时获取相应索引的常用技术是使用range(len(...))
模式或设置并递增计数器:
planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
for i in range(len(planets)):
print("Planet {}: {}".format(i, planets[i]))
planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
i = 0
for planet in planets:
print("Planet {}: {}".format(i, planet))
i += 1
上面的循环可以使用更惯用的方式重写enumerate()
:
planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
for index, value in enumerate(planets):
print("Planet {}: {}".format(index, value))
所有方法都会产生相同的输出:
Planet 0: Mercury
Planet 1: Venus
Planet 2: Earth
Planet 3: Mars
Planet 4: Jupiter
Planet 5: Saturn
Planet 6: Uranus
Planet 7: Neptune
结论#
在本文中,我们向您展示了如何使用 Pythonenumerate()
功能。
如果您有任何问题或反馈,请随时发表评论。