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!
推薦閱讀:
- Python enumerate()計數器簡化循環
- Python 循環函數詳細介紹
- 關於python中readlines函數的參數hint的相關知識總結
- python基礎入門之列表(一)
- python實現簡單文件讀寫函數