18 條好用的 Python 技巧,建議收藏!
在這篇文章中,我們將討論最常用的python技巧。大多數(shù)這些技巧都是我在日常工作中使用過的簡(jiǎn)單的Trick,我覺得好東西就是要拿出來(lái)和大家一起分享。
閑話少說,我們直接開始吧!:)
處理用戶的多個(gè)輸入
有時(shí)我們需要從用戶那里獲得多個(gè)輸入,以便使用循環(huán)或任何迭代,一般的寫法如下:
但是更好的處理方法如下:
處理多個(gè)條件語(yǔ)句
如果我們?cè)诖a中需要檢查多個(gè)條件語(yǔ)句,此時(shí)我們可以使用?all()?或any()?函數(shù)來(lái)實(shí)現(xiàn)我們的目標(biāo)。一般來(lái)說, 當(dāng)我們有多個(gè) and 條件時(shí)使用?all(),當(dāng)我們有多個(gè) or 條件時(shí)使用?any()。這種用法將使我們的代碼更加清晰易讀,可以方便我們?cè)谡{(diào)試時(shí)不會(huì)遇到麻煩。
對(duì)于all()的一般例子如下:
更好的處理方法如下:
對(duì)于any()的一般例子如下:
更好的處理方法如下:
判斷數(shù)字奇偶性
這很容易實(shí)現(xiàn),我們從用戶那里得到輸入,將其轉(zhuǎn)換為整數(shù),檢查 對(duì)數(shù)字2的求余操作,如果余數(shù)為零,則它是偶數(shù)。
?交換變量
在Python中如果需要交換變量的值,我們無(wú)需定義臨時(shí)變量來(lái)操作。我們一般使用如下代碼來(lái)實(shí)現(xiàn)變量交換:
但是更好的處理方法如下:
判斷字符串是否為回文串
將字符串進(jìn)行反轉(zhuǎn)最簡(jiǎn)單的實(shí)現(xiàn)方式為?[::-1]?,代碼如下:
反轉(zhuǎn)字符串
在Python中判斷一個(gè)字符串是否為回文串,只需要使用語(yǔ)句
string.find(string[::-1])== 0?,示例代碼如下:
盡量使用 Inline if statement
大多數(shù)情況下,我們?cè)跅l件之后只有一個(gè)語(yǔ)句,因此使用Inline if statement?可以幫助我們編寫更簡(jiǎn)潔的代碼。舉例如下,一般的寫法為:
但是更好的處理方法如下:
?刪除list中的重復(fù)元素
我們不需要遍歷整個(gè)list列表來(lái)檢查重復(fù)元素,我們可以簡(jiǎn)單地使用?set()?來(lái)刪除重復(fù)元素,代碼如下:
找到list中重復(fù)最多的元素
在Python中可以使用?max( )?函數(shù)并傳遞?list.count?作為key,即可找出列表list中重復(fù)次數(shù)最多的元素,代碼如下:
?list 生成式
Python中我最喜歡的功能就是list comprehensions?, 這個(gè)特性可以使我們編寫非常簡(jiǎn)潔功能強(qiáng)大的代碼,而且這些代碼讀起來(lái)幾乎像自然語(yǔ)言一樣通俗易懂。舉例如下:
使用*args傳遞多個(gè)參數(shù)
在Python中我們可以使用*args來(lái)向函數(shù)傳遞多個(gè)參數(shù),舉例如下:
在循環(huán)時(shí)處理下標(biāo)
有時(shí)我們?cè)诠ぷ髦?想要獲得循環(huán)中元素的下標(biāo),一般來(lái)說,比較優(yōu)雅的寫法如下:
?
拼接list中多個(gè)元素
在Python中一般使用Join()?函數(shù)來(lái)將list中所有元素拼接到一起,當(dāng)然我們也可以在拼接的時(shí)候添加拼接符號(hào),樣例如下:
將兩個(gè)字典進(jìn)行合并
在Python中我們可以使用{**dict_name, **dict_name2, … }將多個(gè)字典進(jìn)行合并,樣例如下:
結(jié)果如下:
?
使用兩個(gè)list生成一個(gè)字典
在Python中,如果我們需要將兩個(gè)列表中對(duì)應(yīng)的元素組成字典,那么我們可以使用 zip 功能來(lái)方便地做到這一點(diǎn)。代碼如下:
字典按照value進(jìn)行排序
在Python中我們使用sorted()函數(shù)來(lái)按照字典的value來(lái)對(duì)其進(jìn)行排序.代碼如下:
當(dāng)然我們也可以使用itemgetter( )來(lái)替代上述?lambda函數(shù),代碼如下:
更進(jìn)一步,我們也可以通過傳遞?reverse=True?對(duì)其進(jìn)行降序排序:
Pretty print
在Python中使用Print()函數(shù),有時(shí)候的輸出賊拉拉丑陋,此時(shí)我們使用pprint可以使輸出更加美觀,樣例如下:
輸出如下:
可見使用pprint函數(shù)可以讓字典的輸出更加容易閱讀
反轉(zhuǎn)列表
Python 中通常有兩種反轉(zhuǎn)列表的方法:切片或 reverse() 函數(shù)調(diào)用。這兩種方法都可以反轉(zhuǎn)列表,但需要注意的是內(nèi)置函數(shù) reverse() 會(huì)更改原始列表,而切片方法會(huì)創(chuàng)建一個(gè)新列表。
但是他們的表現(xiàn)呢?哪種方式更有效?讓我們看一下下面的例子:
這兩種方法都可以反轉(zhuǎn)列表,但需要注意的是內(nèi)置函數(shù) reverse() 會(huì)更改原始列表,而切片方法會(huì)創(chuàng)建一個(gè)新列表。
顯然,內(nèi)置函數(shù) reverse() 比列表切片方法更快!
小編先前學(xué)習(xí)前端總結(jié)了許多資料,有python實(shí)戰(zhàn)案例、python300集視頻教程、電子書、游戲、源碼。在了解的過程里,也有c語(yǔ)言、c++、爬蟲、人工智能、JAVA以及web前端面試題等所有資料,需要可私免費(fèi)資料共享?。?!
