Python中遍歷列表的方法總結(jié)
Python中遍歷列表有以下幾種方法:
一、for循環(huán)遍歷
lists = ["m1", 1900, "m2", 2000] for item in lists: print(item)
lists = ["m1", 1900, "m2", 2000] for item in lists: item = 0; print(lists)
運(yùn)行結(jié)果:
['m1', 1900, 'm2', 2000]
二、while循環(huán)遍歷:
lists = ["m1", 1900, "m2", 2000] count = 0 while count < len(lists): print(lists[count]) count = count + 1
三、索引遍歷:
for index in range(len(lists)): print(lists[index])
四、使用iter()
for val in iter(lists): print(val)
五、enumerate遍歷方法
for i, val in enumerate(lists): print(i, val)
運(yùn)行結(jié)果:
0 m1 1 1900 2 m2 3 2000
當(dāng)從非0下標(biāo)開始遍歷元素的時(shí)候可以用如下方法
for i, el in enumerate(lists, 1): print(i, el)
運(yùn)行結(jié)果:
1 m1 2 1900 3 m2 4 2000
擴(kuò)展
python,遍歷文件的方法
在做驗(yàn)證碼識(shí)別時(shí),識(shí)別時(shí)需要和庫(kù)里的圖片對(duì)比,找到最接近的那個(gè)圖片,然后就行到了用與圖片一致的字符命名,獲取文件的名稱,去將圖片的名稱讀出來(lái)作為驗(yàn)證碼。以下是我通過(guò)網(wǎng)上的資料總結(jié)的三種文件遍歷的方式,第一種和第二種相似,只是和第三種有一些區(qū)別。
首先要獲得文件夾的路徑,我是對(duì)某個(gè)文件夾下的文件進(jìn)行遍歷,需要去除文件的后綴,注:num為我創(chuàng)建的一個(gè)文件夾
import os # 需要用到os包
s = os.sep # s區(qū)分在linux或windows系統(tǒng)下的分割符"/"或"\"
root = "C:\Users\XXX\Desktop" + s + "num" + s # 文件路徑
mode = [] # 用mode進(jìn)行去掉后綴的文件名存儲(chǔ)。
# 遍歷文件的第一種方式:
sname = os.listdir(root) # 獲取文件夾下文件或文件夾的名稱,獲取到的sname的格式為('1.jpg')。
for f in sname:
fname = os.path.splitext(f) # 對(duì)f中的文件名進(jìn)行分割,分割后顯示為['1','jpg']
mode.append(fname[0]) # fname[0],取序列中的第一值,即['1']
# 遍歷文件第二種方法(python2支持,python3不支持)
def func(args, dire, fis):
for f in fis:
fname = os.path.splitext(f) # splitext分割文件名和文件后綴
mode.append(fname[0])
os.path.walk(root, func, ()) # 通過(guò)調(diào)用函數(shù)進(jìn)行文件的遍歷,這種方法只能獲取到文件夾下的文件名,不能獲取到子文件夾下的其他內(nèi)容
# 使用os.walk-遍歷文件的第三種方法:
for rt, dirs, files in os.walk(root): # 通過(guò)os.walk進(jìn)行文件遍歷,可以獲得文件夾下子文件內(nèi)的內(nèi)容,dirs為遞歸查出的所有文件夾,files為遞歸查出的所有文件
for f in files:
fname = os.path.splitext(f)
mode.append(fname[0])
相關(guān)文章
使用opencv-python如何打開USB或者筆記本前置攝像頭
這篇文章主要介紹了使用opencv-python如何打開USB或者筆記本前置攝像頭的過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
python通過(guò)getopt模塊如何獲取執(zhí)行的命令參數(shù)詳解
這篇文章主要給大家介紹了關(guān)于python通過(guò)getopt模塊如何獲取執(zhí)行的命令參數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
Python的Flask框架中實(shí)現(xiàn)簡(jiǎn)單的登錄功能的教程
這篇文章主要介紹了Python的Flask框架中實(shí)現(xiàn)簡(jiǎn)單的登錄功能的教程,登錄是各個(gè)web框架中的基礎(chǔ)功能,需要的朋友可以參考下2015-04-04
教你用一行Python代碼實(shí)現(xiàn)并行任務(wù)(附代碼)
這篇文章主要介紹了教你用一行Python代碼實(shí)現(xiàn)并行任務(wù)(附代碼),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
Python機(jī)器學(xué)習(xí)庫(kù)Scikit-learn實(shí)戰(zhàn)教程
文章介紹了Python在機(jī)器學(xué)習(xí)領(lǐng)域的應(yīng)用,重點(diǎn)介紹了Scikit-learn庫(kù)的使用方法,并通過(guò)實(shí)際案例展示了如何使用Scikit-learn進(jìn)行分類、回歸、聚類和文本挖掘等任務(wù),同時(shí),文章還討論了特征工程、超參數(shù)調(diào)整、避免過(guò)擬合和交叉驗(yàn)證等進(jìn)階技巧2025-01-01
Python首次安裝后運(yùn)行報(bào)錯(cuò)(0xc000007b)的解決方法
最近在安裝完P(guān)ython后運(yùn)行發(fā)現(xiàn)居然報(bào)錯(cuò)了,錯(cuò)誤代碼是0xc000007b,于是通過(guò)往上查找發(fā)現(xiàn)是因?yàn)槭状伟惭bPython缺乏VC++庫(kù)的原因,下面通過(guò)這篇文章看看如何解決這個(gè)問(wèn)題吧。2016-10-10
Python多線程采集二手房源數(shù)據(jù)信息流程詳解
這篇文章主要介紹了Python多線程采集二手房源數(shù)據(jù)信息流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-05-05
python bottle框架支持jquery ajax的RESTful風(fēng)格的PUT和DELETE方法
下面小編就為大家?guī)?lái)一篇python bottle框架支持jquery ajax的RESTful風(fēng)格的PUT和DELETE方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05

