初识枚举函数 enumerate()
今天我们来认识一下 Python 的 enumerate 这个内置的函数,
它就是专门用来枚举可迭代对象的,
通过它我们可以在每次迭代的过程中,
获取到具体的索引、数据和下标。
enumerate 函数语法
enumerate(iterable[, start])
要得到一个 enumerate对象很简单
直接调用 enumerate 方法,把可迭代对象传入就可以了
1 | list1 = ['hi', 'fxxk', 'Python', 'handsomeb'] |
<enumerate object at 0x02E33850>
当我们执行了 enumerate 方法之后,
它会直接把我们传递进去的可迭代对象
生成含有索引和对应的值的 enumerate 对象,
所以这个对象是可以使用 for 循环的:
1 | list1 = ['hi', 'fxxk', 'Python', 'handsomeb'] |
(0, ‘hi’)
(1, ‘fxxk’)
(2, ‘Python’)
(3, ‘handsomeb’)
enumerate 函数可以传两个参数,
一个就是我们刚说的可迭代对象,
另一个就是数字,
这个数字的作用就是让 enumerate 从指定位置(默认为0)开始计数,
也就是说,如果我们希望 enumerate 对我们传进去的可迭代对象从第 5 开始生成,
那么就可以这样:
1 | list1 = ['hi', 'fxxk', 'Python', 'handsomeb'] |
(5, ‘hi’)
(6, ‘fxxk’)
(7, ‘Python’)
(8, ‘handsomeb’)
在枚举的时候
也可以将得到的 enumerate 对象的计数单独拿到
1 | list1 = ['hi', 'fxxk', 'Python', 'handsomeb'] |
0
1
2
3
当然,也可将得到的 enumerate 对象转换成列表
1 | list1 = ['hi', 'fxxk', 'Python', 'handsomeb'] |
[(0, ‘hi’), (1, ‘fxxk’), (2, ‘Python’), (3, ‘handsomeb’)]
那些需要我们做一些计数相关的
或者需要将数字与元素做一些对应关系的时候
就可以使用 enumerate 进行枚举获取,
其内部主要是帮我们做了这样的操作:
enumerate 函数内部实现大概原理如下:
1 | def enumerate(sequence, start=0): |
简单应用举例
将月份的英语单词与数字月进行对应
1 | month = [ |
1月 -》January
2月 -》February
3月 -》March
4月 -》April
5月 -》May
6月 -》June
7月 -》July
8月 -》August
9月 -》September
10月 -》October
11月 -》November
12月 -》December
以上就是 enumerate 对象的使用方式。