分享3個(gè)簡(jiǎn)單的Python代碼高效運(yùn)行技巧
1. 引言
小伙伴們?nèi)粘9ぷ髦卸急夭豢缮俚厥褂肞ython實(shí)現(xiàn)一些簡(jiǎn)單的功能,但是不同的人所編寫(xiě)的代碼執(zhí)行效率往往是不同的。本文重點(diǎn)介紹大家經(jīng)常遇到的場(chǎng)景下,三個(gè)有效的,方便理解的,執(zhí)行高效的實(shí)用技巧。
閑話(huà)少說(shuō),我們直接開(kāi)始吧!??!
2. 獲取字典的值
不妨假設(shè)我們有以下字典:
my_dict = {'first_name': 'Michaela',
? ? ? ? ? ?'last_name': 'Kraushaar',
? ? ? ? ? ?'age': 36,
? ? ? ? ? ?'job': 'Pfleger',
? ? ? ? ? ?'country': 'Antarktis'}一般來(lái)說(shuō),我們可以直接使用方括號(hào)來(lái)從字典中獲取每個(gè)鍵所對(duì)應(yīng)的值,比如使用my_dict['country']即可獲取country所對(duì)應(yīng)的值Antarktis。但是,如果我們的鍵值在字典中不存在呢?我們往往會(huì)遇到以下錯(cuò)誤:

上圖中,我們嘗試獲取鍵city所對(duì)應(yīng)的值,此時(shí)由于city不存在,我們將會(huì)拋出KeyError的異常,將終止我們代碼的執(zhí)行。
當(dāng)然,我們可以添加try-catch語(yǔ)句來(lái)捕捉相應(yīng)的異常,但是我們可以有更好的選擇,那就是使用內(nèi)置函數(shù).get(),代碼如下:

可以看出,使用get()內(nèi)置函數(shù)執(zhí)行效率更高,同時(shí)如果鍵不存在時(shí),并不會(huì)觸發(fā)異常,而是會(huì)返回None,如下所示:

初次之外,內(nèi)置函數(shù)get()還可以傳入額外的輸出信息,如果鍵不存在時(shí),樣例如下:

建議:
盡量使用get()函數(shù)來(lái)代替方括號(hào)來(lái)獲取字典中某個(gè)鍵的值
3. 循環(huán)中使用enumerate
通常,我們需要迭代循環(huán)一個(gè)范圍,比如list、dictionary,同時(shí)還需要處理每個(gè)元素所對(duì)應(yīng)的索引。
按照之前c/c++的經(jīng)驗(yàn),大多數(shù)人往往傾向于在循環(huán)中使用range(len(iterable))來(lái)進(jìn)行遍歷,但是這里更推薦使用enumerate(iterable),因?yàn)檫@種方式往往更加高效。
對(duì)比如下:

上述兩種實(shí)現(xiàn),雖然結(jié)果一樣,但是enumerate(iterable)明顯更加方便易讀。除此之外,我們還可以自行決定,index下標(biāo)開(kāi)始的數(shù)值,如下所示:
更進(jìn)一步地,使用函數(shù)enumerate(iterable),可以方便地產(chǎn)生下標(biāo)和元素組合的元組,代碼如下:

建議:
盡量使用enumerate()函數(shù)來(lái)遍歷可迭代對(duì)象中的元素
4. 使用f-strings來(lái)拼接和打印字符串
格式化輸出可以使用函數(shù)format()。它允許使用簡(jiǎn)單的占位符進(jìn)行格式化。
一般來(lái)說(shuō),f-strings在需要格式化的字符串的開(kāi)頭有一個(gè)字母f,同時(shí)在字符串中有多個(gè)占位符{}。
如下所示:

5. 總結(jié)
本文介紹了日常工作中常用的三個(gè)小技巧,這些小技巧都是工作中很小的細(xì)節(jié),但是使用它們可以讓我們編寫(xiě)的代碼更加簡(jiǎn)潔、方便修改和高效運(yùn)行。
到此這篇關(guān)于分享3個(gè)簡(jiǎn)單的Python代碼高效運(yùn)行技巧的文章就介紹到這了,更多相關(guān)Python技巧內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
opencv-python 讀取圖像并轉(zhuǎn)換顏色空間實(shí)例
今天小編就為大家分享一篇opencv-python 讀取圖像并轉(zhuǎn)換顏色空間實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
python使用matplotlib繪圖時(shí)圖例顯示問(wèn)題的解決
matplotlib 是python最著名的繪圖庫(kù),它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地進(jìn)行制圖。下面這篇文章主要給大家介紹了在python使用matplotlib繪圖時(shí)圖例顯示問(wèn)題的解決方法,需要的朋友可以參考學(xué)習(xí),下面來(lái)一起看看吧。2017-04-04
解決Numpy報(bào)錯(cuò):ImportError: numpy.core.multiarray faile
這篇文章主要介紹了解決Numpy報(bào)錯(cuò):ImportError: numpy.core.multiarray failed問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
python OpenCV學(xué)習(xí)筆記之繪制直方圖的方法
本篇文章主要介紹了python OpenCV學(xué)習(xí)筆記之繪制直方圖的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
python中l(wèi)ist循環(huán)語(yǔ)句用法實(shí)例
這篇文章主要介紹了python中l(wèi)ist循環(huán)語(yǔ)句用法,以實(shí)例形式詳細(xì)介紹了Python針對(duì)list的解析,包含各種常見(jiàn)的遍歷操作及原理分析,需要的朋友可以參考下2014-11-11
django 發(fā)送手機(jī)驗(yàn)證碼的示例代碼
本篇文章主要介紹了django 發(fā)送手機(jī)驗(yàn)證碼的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04

