自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

三個(gè)節(jié)省時(shí)間的 Python 技巧!

開(kāi)發(fā) 后端
今天給大家分享:3個(gè)節(jié)省時(shí)間的 Python 技巧,它們?cè)谧罱捻?xiàng)目中,幫我節(jié)省了 40% 的時(shí)間。

我最近的工作內(nèi)容:自動(dòng)移動(dòng)文件、圖像處理和數(shù)據(jù)清理。在編程過(guò)程中總結(jié)了一些Python技巧,使得我的代碼既整潔,又易于理解。接下來(lái),我給大家分享3個(gè)節(jié)省時(shí)間的 Python 技巧。

反轉(zhuǎn)列表

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

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

# 創(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è)新列表。

我們?cè)賹?duì)比一下執(zhí)行時(shí)間?

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

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

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

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

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

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

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

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

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

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

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

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

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

通過(guò)上面的技巧,使我的工作節(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ǎng)的執(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è)簡(jiǎn)單的字符串列表:

listofstrings = ['蘋(píng)果','橙子','香蕉','菠蘿','葡萄']

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

# 在函數(shù)內(nèi)部創(chuàng)建一個(gè)沒(méi)有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àn),兩個(gè)函數(shù)的輸出的結(jié)果是相同的。

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

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

在我的另一項(xiàng)目中,需要處理許多復(fù)雜的圖像處理任務(wù)。相對(duì)比之下,在函數(shù)內(nèi)部使用 for 循環(huán)比在每次迭代中調(diào)用相同函數(shù)快 1.5 倍。當(dāng)然,這些只是我的個(gè)人經(jīng)驗(yàn),但如果你們也遇到了類似情況下,應(yīng)該也會(huì)有用。

總而言之,大家可以多多使用 Python 的內(nèi)置函數(shù)。來(lái)提高自己的Python程序速度,同時(shí)還能保持代碼簡(jiǎn)潔易懂。

如果大家想了解更過(guò)Python的內(nèi)置函數(shù),可以參考下表,也可以查看下方網(wǎng)站:

?https://docs.python.org/3/library/functions.html?

責(zé)任編輯:龐桂玉 來(lái)源: 菜鳥(niǎo)學(xué)Python
相關(guān)推薦

2022-12-26 17:33:43

Jupyterpython

2011-02-23 16:07:44

MySQL

2024-05-13 12:36:51

Python代碼

2020-02-27 15:53:01

開(kāi)發(fā)技能代碼

2022-04-13 13:51:12

DevSecOps工具開(kāi)發(fā)管道

2023-09-18 11:32:37

Python計(jì)算

2020-04-27 11:11:54

數(shù)據(jù)湖數(shù)據(jù)人工智能

2020-01-16 10:20:45

piwheels樹(shù)莓派Linux

2020-03-10 10:12:14

CIO自動(dòng)化人力資源

2022-12-19 15:25:22

Linux命令

2011-09-29 11:33:35

Linux

2018-07-03 10:33:51

服務(wù)器運(yùn)維Linux

2011-08-01 09:36:53

Linux管理員

2023-08-13 16:46:36

2011-07-29 10:32:09

Linux管理員命令行

2009-08-24 08:59:10

IT白領(lǐng)網(wǎng)絡(luò)應(yīng)用

2018-07-09 09:00:00

開(kāi)源網(wǎng)絡(luò)管理操作系統(tǒng)

2022-05-23 15:38:28

Windows 11Windows 10微軟

2021-06-11 08:00:00

人工智能航空工具

2019-11-08 10:27:11

Linux鍵盤(pán)快捷鍵
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)