溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

節(jié)省時(shí)間的Python技巧有哪些

發(fā)布時(shí)間:2023-04-13 14:41:03 來源:億速云 閱讀:97 作者:iii 欄目:編程語言

這篇文章主要介紹了節(jié)省時(shí)間的Python技巧有哪些的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇節(jié)省時(shí)間的Python技巧有哪些文章都會(huì)有所收獲,下面我們一起來看看吧。

反轉(zhuǎn)列表

我最近有個(gè)項(xiàng)目,需要去反轉(zhuǎn)列表,一開始是通過切片來完成。但其實(shí)使用內(nèi)置函數(shù)reverse()方法,也可以反轉(zhuǎn)python中的列表。

先從創(chuàng)建一個(gè)列表開始。

# 創(chuàng)建一個(gè)列表
mylist = list(np.arange(0,100))

反轉(zhuǎn)列表的兩種方法是:

# 使用切片反轉(zhuǎn)列表
newlist = mylist[::-1]

# 使用內(nèi)置的 reverse() 反轉(zhuǎn)列表
mylist.reverse()

兩種方法都可以反轉(zhuǎn)列表,但需要注意的是,內(nèi)置函數(shù)reverse()會(huì)更改原始列表,切片方法是創(chuàng)建一個(gè)新列表。

我們再對比一下執(zhí)行時(shí)間?

節(jié)省時(shí)間的Python技巧有哪些

reverse() 和列表切片的執(zhí)行時(shí)間

顯然,內(nèi)置函數(shù)reverse()比列表切片的方法快3倍!

在我的工作項(xiàng)目中,為了實(shí)現(xiàn)系統(tǒng)文件的自動(dòng)移動(dòng),我創(chuàng)建了一個(gè)位置值的列表。早期的Python程序是使用列表切片編寫的,現(xiàn)在我重新編寫了代碼,用reverse()函數(shù)使得程序的更快執(zhí)行。

好了,下面介紹第二個(gè)技巧。

使用一行代碼交換兩個(gè)值

使用一行代碼交換兩個(gè)變量值是一種真正的 Pythonic 方式。

與其他編程語言不同,Python 無需使用臨時(shí)變量來交換兩個(gè)數(shù)字或值。舉一個(gè)簡單的例子:

# 創(chuàng)建兩個(gè)變量
variable_1 = 100 
variable_2 = 500

要交換 variable_1 和 variable_2 的值,您只需使用一行代碼即可。

變量_2,變量_1 = 變量_1,變量_2

使用一行代碼交換兩個(gè)值,簡化也就是下面這種形式。

節(jié)省時(shí)間的Python技巧有哪些

當(dāng)然,我的實(shí)際工作項(xiàng)目比這復(fù)雜一點(diǎn),要用到一個(gè)字典,每個(gè)鍵都有一個(gè)列表作為值。

md[key_2],md[key_1] = md[key_1],md[key_2]

通過上面的技巧,使我的工作節(jié)省了多次迭代和復(fù)雜的數(shù)據(jù)轉(zhuǎn)換,減少了執(zhí)行時(shí)間。

在函數(shù)內(nèi)使用 for 循環(huán)

我們都喜歡創(chuàng)建自定義的函數(shù),以執(zhí)行自己的特定任務(wù)。然后再搭配 for 循環(huán)迭代這些函數(shù),多次重復(fù)執(zhí)行任務(wù)。

但是,在 for 循環(huán)中使用函數(shù)需要更長的執(zhí)行時(shí)間,因?yàn)槊看蔚紩?huì)調(diào)用該函數(shù)。

相反,如果 for 循環(huán)是在函數(shù)內(nèi)部實(shí)現(xiàn)的,那么該函數(shù)只會(huì)被調(diào)用一次。

為了解釋得更清楚,還是舉個(gè)例子吧!

先創(chuàng)建一個(gè)簡單的字符串列表:

listofstrings = ['蘋果','橙子','香蕉','菠蘿','葡萄']

創(chuàng)建兩個(gè)函數(shù),for 循環(huán)分別在函數(shù)內(nèi)外,從簡單的一個(gè)開始。

# 在函數(shù)內(nèi)部創(chuàng)建一個(gè)沒有for循環(huán)的函數(shù)
def onlyfunction(x):
    newstring = x.capitalize()
    outputstring = x + " " + newstring
    print(outputstring)

以及一個(gè)for內(nèi)部帶有循環(huán)的函數(shù)。

# 創(chuàng)建一個(gè)函數(shù),其中 for 循環(huán)在函數(shù)內(nèi)部
def forinfunction(listofstrings):
    for x in listofstrings:
        newstring = x.capitalize()
        outputstring = x + " " + newstring
        print(outputstring)

讓我們使用這些函數(shù)并查看輸出。

節(jié)省時(shí)間的Python技巧有哪些

顯而易見,兩個(gè)函數(shù)的輸出的結(jié)果是相同的。

但是,故事并沒有到此結(jié)束。咱們對比一下,哪個(gè)更快?

節(jié)省時(shí)間的Python技巧有哪些

可以看到,在函數(shù)內(nèi)部使用 for 循環(huán)要稍微快一些。

節(jié)省時(shí)間的Python技巧有哪些

關(guān)于“節(jié)省時(shí)間的Python技巧有哪些”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“節(jié)省時(shí)間的Python技巧有哪些”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI