Python中的枚舉函數enumerate()的具體用法

相比於range,list等簡易單詞,enumerate僅憑外形都不太讓人願意用。事實上,enumerate還是很好用的。

  • enumerate()是python的內置函數、適用於python2.x和python3.x
  • enumerate在字典上是枚舉、列舉的意思
  • enumerate參數為可遍歷/可迭代的對象(如列表、字符串)
  • enumerate多用於在for循環中得到計數,利用它可以同時獲得索引和值,即需要index和value值的時候可以使用enumerate
  • enumerate()返回的是一個enumerate對象

python中最常用的數據結構就是list,處理list中每個元素,通常都用for循環搞定。

我們先看,加入瞭enumerate之後,list的變化:

多瞭一個索引,同時還能讀取到元素。這個特性有什麼應用呢?看一段代碼:

ls = ['a', 'b', 'c']
# method 1
for i in range(len(ls)):
    print(i, end=' ')
    print(ls[i])
 
# method 2
for s in ls:
    print(ls.index(s), end=' ')
    print(s)
 
# method 3
for i, s in enumerate(ls):
    print(i, end=' ')
    print(s)

一看方法3就能更簡便地訪問到索引i和對應的元素s。

而且,用enumerate會顯得代碼更加高級~

enumerate的使用:

例如:已知lst = [1,2,3,4,5,6],要求輸出:

0,1
1,2
2,3
3,4
4,5
5,6

>>> lst = [1,2,3,4,5,6]
>>> for index,value in enumerate(lst):
  print ('%s,%s' % (index,value))
  
0,1
1,2
2,3
3,4
4,5
5,6
#指定索引從1開始
>>> lst = [1,2,3,4,5,6]
>>> for index,value in enumerate(lst,1):
print ('%s,%s' % (index,value))

1,1
2,2
3,3
4,4
5,5
6,6

#指定索引從3開始
>>> for index,value in enumerate(lst,3):
print ('%s,%s' % (index,value))

3,1
4,2
5,3
6,4
7,5
8,6

補充:

如果要統計文件的行數,可以這樣寫:

count = len(open(filepath, 'r').readlines())

這種方法簡單,但是可能比較慢,當文件比較大時甚至不能工作。

可以利用enumerate():

count = 0
for index, line in enumerate(open(filepath,'r')): 
   count += 1

到此這篇關於Python中的枚舉函數enumerate()的具體用法的文章就介紹到這瞭,更多相關Python enumerate內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: