2020年8月9日 / 116次阅读 / 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条留言
前一篇:segmentation fault
后一篇:reversed函数
©Copyright 麦新杰 Since 2019 Python笔记
enumerate函数完美的解决了在loop中,既需要index,也需要value的场景! [ ]