在使用 for 循环迭代一个列表时,有时我们需要获取列表中每个元素所在的下标位置是多少,例如 numbers = [10, 29, 30, 41],要求输出 (0, 10),(1, 29),(2, 30),(3, 41)
这道题的实现方式主要有两种方式,第一种方式是通过获取列表长度来迭代列表下标
>>> numbers=[10,11,12,13,14] >>> for i in range(len(numbers)): ... print('({0},{1})'.format(i,numbers[i])) ... (0,10) (1,11) (2,12) (3,13) (4,14) >>>
第二种方法是直接使用enumerate函数:
>>> numbers = [10, 29, 30, 41]
>>> for index,value in enumerate(numbers):
... print(index,value)
...
0 10
1 29
2 30
3 41
>>>
后者才是更地道的写法,在Python之禅中有一条格言是:There should be on,and preferably only one,obvious way to do it. 就是说我们写代码的时候应该选择一种而且最好是唯一一种显而易见的方式来实现。
内置函数 enumerate 还可以接收一个默认参数 start ,用于指定 index 从哪个数开始,默认是0,不知道有多少禅友知道这个用法,如果你不知道,那么建议你遇到新知识就更加详细地了解一下官方文档,而不仅仅只是浅尝辄止 ,学会查文档也是一个很重要的学习方法。