【python實用特性】- enumerate函數

enumerate: python的內置函數之一,中文意思爲“枚舉”,即將所有元素逐個列舉出來。
如何使用?通過一個簡單的例子瞭解下

1、實例引入,循環打印列表的下標和對應值
  • 循環實現
L = ['jc','yf','xbz','xdg']
for i in range(len(L)):
    print(i,L[i])
  • 使用enumerate函數
L = ['jc','yf','xbz','xdg']
for index,value in enumerate(L):
    print(index,value)

結果:

0 jc
1 yf
2 xbz
3 xdg

看起來與使用循環差不多,但可以同時得到下標和對應值。
用法也很簡單,enumerate(可迭代對象)。下面我們看下源碼

2、源碼解析
  • 功能註釋
    源碼解析
    如上圖所示,enumerate用來迭代可迭代對象的下標和對應值,每次yield一個包含下標和值的元組。

    迭代與可迭代對象見【python實用特性】- 迭代、可迭代對象、迭代器
    yield生成器見【python實用特性】- yield生成器

  • 返回內容
    如果我們直接打印 print(enumerate(L)),那得到的是一個<enumerate object at 0x000002908244ED38>,即一個enumerate對象。
    將其用list轉換下:

    L = ['jc','yf','xbz','xdg']
    print(list(enumerate(L)))
    

    結果:[(0, 'jc'), (1, 'yf'), (2, 'xbz'), (3, 'xdg')]

  • start參數
    由源碼可知,除了可迭代對象外,enumerate還有一個start參數,即起始下標設置,默認爲0。也可以更改,如下:

    print(list(enumerate(L,start=1))) #更改起始下標爲 1
    

    輸出:[(1, 'jc'), (2, 'yf'), (3, 'xbz'), (4, 'xdg')]

博主其他系列文章:
[1] 【python實用特性】-切片

[2] 【python實用特性】- 迭代、可迭代對象、迭代器

[3] 【python實用特性】- 列表生成式

[4] 【python實用特性】- yield生成器

[5] python爬取豆瓣Top250-改進版

[5] Python如何爬取動態網頁數據

[6] Python+selenium實現自動爬取實例

[7] Python自動化利器—robobrowser

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章