列表(list)是你使用python過程中接觸最為頻繁的資料結構,也是功能最為強大的幾種資料結構之一。python列表非常的萬能且蘊含著許多隱藏技巧,下面我們就來探索一些常用的列表技巧。
一、列表元素的過濾
1. filter()的使用
filter()函式接受2個引數:1個函式物件以及1個可迭代的物件,接下來我們定義1個函式然後對1個列表進行過濾。
首先我們建立1個列表,並且剔除掉小於等於3的元素:
回顧一下發生了什麼:
我們定義了列表original_list接著我們定義了乙個接受數值型引數number的函式filter_three,當傳入的引數值大於3時會返回true,反之則會返回false我們定義了filter物件filtered,其中filter()接受的第乙個引數是函式物件,第二個引數是列表物件最終我們將filter物件轉化為列表,最終得到經filter_three過濾後original_list內留下的元素。
1.2 使用列表推導式
二、修改列表
1. map()的使用
python中內建的map()函式使得我們可以將某個函式應用到可迭代物件內每乙個元素之上。
比方說我們想獲取到乙個列表物件中每乙個元素的平方,就可以使用到map()函式,就像下面的例子一樣:
類似filter()的工作過程,下面我們來看看發生了什麼:
首先我們定義了列表original_list,以及接受數值型引數並返回其平方值的函式square()接著我們定義了map物件squares,類似filter(),map()接受的第乙個引數是函式物件,第二個引數是列表物件最終我們將map物件squares列表化,就得到了想要的結果
2. 使用列表推導式
同樣的我們也可以使用列表推導式完成同樣的任務:
三、利用zip()來組合列表
有些情況下我們需要將兩個或以上數量的列表組合在一起,這類需求使用zip()來完成非常方便。
四、顛倒列表
python中的列表是有序的資料結構,正因如此,列表中元素的順序很重要,有些時候我們需要翻轉列表中所有元素的順序,可以通過python中的切片操作,用::-1來快捷地實現:
五、檢查列表中元素的存在情況
有些情況下我們想要檢查列表中是否存在某個元素,這種時候就可以使用到python中的in運算子,譬如說我們有乙個記錄了所有比賽獲勝隊伍名稱的列表,當我們想查詢某個隊名是否已獲勝時,可以像下面的例子一樣:
六、找出列表**現次數最多的元素
七、展平巢狀列表
有些情況下我們會遇到一些巢狀的列表,其每個元素又是各自不同的列表,這種時候我們就可以利用列表推導式來把這種巢狀列表展平,如下面2層巢狀的例子:
額外補充:
原作者這裡只考慮到兩層巢狀的列表,如果是更多層巢狀,就需要有多少層寫多少for迴圈,比較麻煩,其實還有一種更好的方法,我們可以使用pip install dm-tree來安裝tree這個專門用於展平巢狀結構的庫,可以展平任意層巢狀列表,使用例子如下:
八、檢查唯一性
如果你想要檢視列表中的值是否都是唯一值,可以使用python中的set資料結構的特點
8個簡單實用的CSS秘訣
下面列出了一些可以幫助你改善css樣式表的簡單實用的方法,如果你剛剛開始使用css,這篇日誌可以幫助你更好的理解css。1.結構 保持css結構清晰,不僅有助於保持css檔案的簡單,也利於日後的檢查 更改。2.保持簡潔 保持 簡潔,可以大幅減小css檔案的大小。3.padding vs.margin...
python實用寶典 python 5個實用的技巧
下面我挑選出的這幾個技巧常常會被人們忽略,但它們在日常程式設計中能真正的給我們帶來不少幫助。1.字典推導 dictionary comprehensions 和集合推導 set comprehensions 大多數的python程式設計師都知道且使用過列表推導 list comprehensions...
python實用特性 列表生成式
列表生成式,指在列表中,按照一定規則,快速生成列表元素的方式。接下來,我們舉幾個例子,看下普通的列表生成與使用列表生成式在書寫及效能上有何區別。1 生成乙個包含10000000個元素的列表 2 求0 100之間的所有奇數 思路 step1 迴圈0 100 step2 用模運算判斷是否是奇數 3 元素...