Python中的枚舉函數(shù)enumerate()的具體用法
相比于range,list等簡易單詞,enumerate僅憑外形都不太讓人愿意用。事實上,enumerate還是很好用的。
- enumerate()是python的內(nèi)置函數(shù)、適用于python2.x和python3.x
- enumerate在字典上是枚舉、列舉的意思
- enumerate參數(shù)為可遍歷/可迭代的對象(如列表、字符串)
- enumerate多用于在for循環(huán)中得到計數(shù),利用它可以同時獲得索引和值,即需要index和value值的時候可以使用enumerate
- enumerate()返回的是一個enumerate對象
python中最常用的數(shù)據(jù)結(jié)構(gòu)就是list,處理list中每個元素,通常都用for循環(huán)搞定。
我們先看,加入了enumerate之后,list的變化:
多了一個索引,同時還能讀取到元素。這個特性有什么應(yīng)用呢?看一段代碼:
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和對應(yīng)的元素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
補(bǔ)充:
如果要統(tǒng)計文件的行數(shù),可以這樣寫:
count = len(open(filepath, 'r').readlines())
這種方法簡單,但是可能比較慢,當(dāng)文件比較大時甚至不能工作。
可以利用enumerate():
count = 0 for index, line in enumerate(open(filepath,'r')): count += 1
到此這篇關(guān)于Python中的枚舉函數(shù)enumerate()的具體用法的文章就介紹到這了,更多相關(guān)Python enumerate內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
從零開始的TensorFlow+VScode開發(fā)環(huán)境搭建的步驟(圖文)
這篇文章主要介紹了從零開始的TensorFlow+VScode開發(fā)環(huán)境搭建的步驟(圖文),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Python select及selectors模塊概念用法詳解
這篇文章主要介紹了Python select及selectors模塊概念用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06python實現(xiàn)ModBusTCP協(xié)議的client功能
Modbus TCP 是一種基于 TCP/IP 協(xié)議棧的 Modbus 通信協(xié)議,它用于在工業(yè)自動化系統(tǒng)中進(jìn)行設(shè)備之間的通信,只要通過pymodbus或pyModbusTCP任意模塊就可以實現(xiàn),本文采用pymodbus,感興趣的朋友跟隨小編一起看看吧2023-10-10