enumerate函数

2020年8月9日 / 90次阅读 / Last Modified 2021年4月14日
内置函数

enumerate函数用来将一个可迭代对象变成一个枚举对象。C语言的枚举类型数据,本质上就是按序增加的宏定义。python中的枚举对象,是高度抽象的一个生成器。

>>> a = ['a','b','c','d','e']
>>> a
['a', 'b', 'c', 'd', 'e']
>>> enumerate(a)
<enumerate object at 0x00000136166BCF78>
>>> for i,v in enumerate(a):
...   print(i,v)
...
0 a
1 b
2 c
3 d
4 e

for循环里面的i,就是index,不过这个index不是list a自带的,而是enumerate之后新生成的。我们可以用start参数来控制index的开始位置,就像在C语言中定义枚举类型一样:

>>> for i,v in enumerate(a, start=12):
...   print(i,v)
...
12 a
13 b
14 c
15 d
16 e

对于enumerate函数的介绍,出现在python官方教材的loop技巧那一部分。

用enumerate遍历dict对象:

>>> d = {'a':1, 'b':2, 'c':3}
>>> d
{'a': 1, 'b': 2, 'c': 3}
>>> for i,k in enumerate(d):
...     print(i,k)
...
0 a
1 b
2 c
>>> for i,v in enumerate(d.values()):
...     print(i,v)
...
0 1
1 2
2 3
>>> for i,(k,v) in enumerate(d.items()):
...     print(i,k,v)
...
0 a 1
1 b 2
2 c 3

用enumerate遍历set对象:

>>> ss = set((11,22,33,44))
>>> ss
{33, 11, 44, 22}
>>> for k,v in enumerate(ss):
...     print(k,v)
...
0 33
1 11
2 44
3 22

-- EOF --

本文链接:https://www.pynote.net/archives/2324

留言区

《enumerate函数》有1条留言

您的电子邮箱地址不会被公开。 必填项已用*标注

  • 麦新杰

    enumerate函数完美的解决了在loop中,既需要index,也需要value的场景! [回复]


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top