超級(jí)實(shí)用的8個(gè)Python列表技巧
列表(List)是你使用Python過程中接觸最為頻繁的數(shù)據(jù)結(jié)構(gòu),也是功能最為強(qiáng)大的幾種數(shù)據(jù)結(jié)構(gòu)之一。Python列表非常的萬能且蘊(yùn)含著許多隱藏技巧,下面我們就來探索一些常用的列表技巧。
一、列表元素的過濾
1. filter()的使用
filter()函數(shù)接受2個(gè)參數(shù):1個(gè)函數(shù)對(duì)象以及1個(gè)可迭代的對(duì)象,接下來我們定義1個(gè)函數(shù)然后對(duì)1個(gè)列表進(jìn)行過濾。
首先我們創(chuàng)建1個(gè)列表,并且剔除掉小于等于3的元素:

回顧一下發(fā)生了什么:
我們定義了列表original_list接著我們定義了一個(gè)接受數(shù)值型參數(shù)number的函數(shù)filter_three,當(dāng)傳入的參數(shù)值大于3時(shí)會(huì)返回True,反之則會(huì)返回False我們定義了filter對(duì)象filtered,其中filter()接受的第一個(gè)參數(shù)是函數(shù)對(duì)象,第二個(gè)參數(shù)是列表對(duì)象最終我們將filter對(duì)象轉(zhuǎn)化為列表,最終得到經(jīng)filter_three過濾后original_list內(nèi)留下的元素。
1.2 使用列表推導(dǎo)式
類似的,我們也可以利用列表推導(dǎo)式來過濾列表元素,作為一種生成和修改列表優(yōu)雅的方式,列表推導(dǎo)式想必大家都比較熟悉了,下面是使用列表推導(dǎo)完成同樣任務(wù)的過程:

二、修改列表
1. map()的使用
Python中內(nèi)置的map()函數(shù)使得我們可以將某個(gè)函數(shù)應(yīng)用到可迭代對(duì)象內(nèi)每一個(gè)元素之上。
比方說我們想獲取到一個(gè)列表對(duì)象中每一個(gè)元素的平方,就可以使用到map()函數(shù),就像下面的例子一樣:

類似filter()的工作過程,下面我們來看看發(fā)生了什么:
首先我們定義了列表original_list,以及接受數(shù)值型參數(shù)并返回其平方值的函數(shù)square()接著我們定義了map對(duì)象squares,類似filter(),map()接受的第一個(gè)參數(shù)是函數(shù)對(duì)象,第二個(gè)參數(shù)是列表對(duì)象最終我們將map對(duì)象squares列表化,就得到了想要的結(jié)果
2. 使用列表推導(dǎo)式
同樣的我們也可以使用列表推導(dǎo)式完成同樣的任務(wù):

三、利用zip()來組合列表
有些情況下我們需要將兩個(gè)或以上數(shù)量的列表組合在一起,這類需求使用zip()來完成非常方便。
zip()函數(shù)接收多個(gè)列表作為參數(shù)傳入,進(jìn)而得到每個(gè)位置上一一對(duì)應(yīng)的元素組合,就像下面的例子一樣:

四、顛倒列表
Python中的列表是有序的數(shù)據(jù)結(jié)構(gòu),正因如此,列表中元素的順序很重要,有些時(shí)候我們需要翻轉(zhuǎn)列表中所有元素的順序,可以通過Python中的切片操作,用::-1來快捷地實(shí)現(xiàn):

五、檢查列表中元素的存在情況
有些情況下我們想要檢查列表中是否存在某個(gè)元素,這種時(shí)候就可以使用到Python中的in運(yùn)算符,譬如說我們有一個(gè)記錄了所有比賽獲勝隊(duì)伍名稱的列表,當(dāng)我們想查詢某個(gè)隊(duì)名是否已獲勝時(shí),可以像下面的例子一樣:

六、找出列表中出現(xiàn)次數(shù)最多的元素
有些情況下我們想要找出列表中出現(xiàn)次數(shù)最多的元素,譬如對(duì)記錄若干次拋硬幣結(jié)果的列表,找出哪一種結(jié)果出現(xiàn)次數(shù)最多,就可以參考下面的例子:

七、展平嵌套列表
有些情況下我們會(huì)遇到一些嵌套的列表,其每個(gè)元素又是各自不同的列表,這種時(shí)候我們就可以利用列表推導(dǎo)式來把這種嵌套列表展平,如下面2層嵌套的例子:

額外補(bǔ)充:
原作者這里只考慮到兩層嵌套的列表,如果是更多層嵌套,就需要有多少層寫多少for循環(huán),比較麻煩,其實(shí)還有一種更好的方法,我們可以使用pip install dm-tree來安裝tree這個(gè)專門用于展平嵌套結(jié)構(gòu)的庫(kù),可以展平任意層嵌套列表,使用例子如下:

八、檢查唯一性
如果你想要查看列表中的值是否都是唯一值,可以使用Python中的set數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),譬如下面的例子:

以上就是超級(jí)實(shí)用的8個(gè)Python列表技巧的詳細(xì)內(nèi)容,更多關(guān)于Python列表技巧的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python實(shí)現(xiàn)求解列表中元素的排列和組合問題
本篇文章給大家分享使用python的內(nèi)置模塊實(shí)現(xiàn)求解列表中元素的排列和組合問題,具體實(shí)現(xiàn)代碼大家參考下本文2018-03-03
python數(shù)組排序方法之sort、sorted和argsort詳解
這篇文章主要給大家介紹了關(guān)于python數(shù)組排序方法之sort、sorted和argsort的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03
更新pip3與pyttsx3文字語音轉(zhuǎn)換的實(shí)現(xiàn)方法
今天小編就為大家分享一篇更新pip3與pyttsx3文字語音轉(zhuǎn)換的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python使用OpenCV對(duì)圖像進(jìn)行縮放功能
這篇文章主要介紹了Python使用OpenCV對(duì)圖像進(jìn)行縮放功能,文中給大家提到了兩種調(diào)用方式及OpenCV中pryUp和pryDown的用法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
Python學(xué)習(xí)之while 循環(huán)語句
這篇文章主要給大家介紹了關(guān)于Python中while循環(huán)語句的相關(guān)資料,使用while循環(huán)語句可以解決程序中需要重復(fù)執(zhí)行的操作,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-10-10
python歐拉角和旋轉(zhuǎn)矩陣變換的實(shí)現(xiàn)示例
在計(jì)算機(jī)圖形學(xué)中,歐拉角和旋轉(zhuǎn)矩陣是描述物體旋轉(zhuǎn)的常用方法,本文主要介紹了python歐拉角和旋轉(zhuǎn)矩陣變換的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Python二進(jìn)制數(shù)據(jù)結(jié)構(gòu)Struct的具體使用
在C/C++語言中,struct被稱為結(jié)構(gòu)體。而在Python中,struct是一個(gè)專門的庫(kù),用于處理字節(jié)串與原生Python數(shù)據(jù)結(jié)構(gòu)類型之間的轉(zhuǎn)換。本文就詳細(xì)介紹struct的使用方式2021-06-06

