再來看看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參數,很好的幫咱們解決了上述問題。
其實關於這個函數的用法,你們沒必要說要鑽的多深,掌握它最通俗的用法就夠了,相信它將來會幫助你不少。