再来看看enumerate() 函数的语法结构:函数
通俗的讲:可迭代指的就是咱们能够循环获取其中的每个元素。某对象可使用for循环的必要条件是该对象是可迭代的。code
你可能还不知道什么是可迭代对象,这里也不过多的去解释,你若是想深刻了解它,能够自行下去查资料,可是这里我要讲述 “如何判断一个对象是可迭代对象”。对象
from collections.abc import Iterable print(isinstance("梁某人", Iterable)) # True print(isinstance([1,True,2.3],Iterable)) # True print(isinstance(1, Iterable)) # False print(isinstance(range(10), Iterable)) # True
经过上述代码演示,咱们就知道哪些对象是可迭代对象,可使用for循环,哪些对象不是可迭代对象,也不能使用for循环。blog
在Python基础中,咱们还将到了一个“序列”的概念,其实序列也是一种可迭代对象,其中列表( list)、元组( tuple)、字符串( str)等都是序列,所以它们也都是可迭代对象,也就均可以配合enumerate()函数使用了。索引
通俗的说:就是一次将多个变量赋值给多个值。很简单,不要想的过高深,咱们简单举个例子你就知道了。element
x, y = (12, 54) print(x) # 12 print(y) # 54
结果以下:字符串
该函数最常就是配合for循环使用,咱们就以此为例,为你们演示enumerate() 函数的用法。io
需求:打印出班级中大于18岁的同窗名字;for循环
若是使用普通的for循环:import
i = 0 name = ["张三", "李四", "王五"] lis = [13, 22, 43] for element in lis: if element >= 18: print(i, name[i], lis[i]) i += 1
结果以下:
若是for循环,配合enumerate()函数使用:
name = ["张三", "李四", "王五"] lis = [13, 22, 43] for index, value in enumerate(lis): if value >= 18: print(index, name[index], value)
结果以下:
普通for循环我也就很少说了。仔细观察for循环+enumerate()函数的搭配使用,序列使用过该函数后,会返回元素下标和元素组合的元组,咱们采用序列解包的方式,将其赋值给了index和value,其中index表示lis列表中每一个元素的下标,value表示lis列表中每一个元素的值,以下图所示:
接着再仔细观察上图,能够发现:enumerate()函数默认序列第一个元素的下标为0,这个也是和Python中序列的元素访问一致。可是有时候,咱们就想让第一个元素的下标变为1,第二个元素的下标变为2,怎么办呢?
从上图能够看出:enumerate()函数中有一个start参数,很好的帮咱们解决了上述问题。
其实关于这个函数的用法,你们没必要说要钻的多深,掌握它最通俗的用法就够了,相信它将来会帮助你不少。