在Python中使用lambda高效操作列表的教程

2022-08-26 11:42:09 字數 1368 閱讀 7327

在python中使用lambda高效操作列表的教程

這篇文章主要介紹了在python中使用lambda高效操作列表的教程,結合了包括map、filter、reduce、sorted等函式,需要的朋友可以參考下

介紹lambda

python用於支援將函式賦值給變數的乙個操作符

預設是返回的,所以不用再加return關鍵字,不然會報錯 

result = lambda x: x * x

result(2) # return 4

map()/filter()/reduce()

需要兩個引數,第乙個是乙個處理函式,第二個是乙個序列(list,tuple,dict)

map()

將序列中的元素通過處理函式處理後返回乙個新的列表

filter()

將序列中的元素通過函式過濾後返回乙個新的列表

reduce()

將序列中的元素通過乙個二元函式處理返回乙個結果

將上面三個函式和lambda結合使用 

li = [1, 2, 3, 4, 5]

# 序列中的每個元素加1

map(lambda x: x 1, li) # [2,3,4,5,6]

# 返回序列中的偶數

filter(lambda x: x % 2 == 0, li) # [2, 4]

# 返回所有元素相乘的結果

reduce(lambda x, y: x * y, li) # 1*2*3*4*5 = 120

sorted() 結合lambda對列表進行排序

sorted 用於列表的排序,比列表自帶的更加智慧型

有兩個列表,每個列表中都有乙個字典([{},{}])要求將兩個這樣的列表合併後按照時間排序,

兩個列表中的時間為了能夠通過json輸出已經由時間格式轉變為字串格式.欄位名為 sort_time

現在將他們按照倒序排列

sorted 的用法

sorted(iterable, cmp=none, key=none, reverse=false)

--> new sorted list terable:是可迭代型別;

cmp:用於比較的函式,比較什麼由key決定,有預設值,迭代集合中的一項;

key:用列表元素的某個屬性和函式進行作為關鍵字,有預設值,迭代集合中的一項; reverse:排序規則. reverse =

true 或者 reverse = false,有預設值。 *

返回值:是乙個經過排序的可迭代型別,與iterable一樣。

sorted()結合lambda對可迭代型別用sort_time排序

sorted(data, key=lambda d: d['sort_time'], reverse=true)

在python中使用websocket

介紹一款很帥的外掛程式autobahnpython,通過它可以在python中很方便的使用websocket進行通訊 基於twisted框架 這個外掛程式真正強大的地方是它提供了乙個 發布 訂閱模式,具體內容有空再寫,先簡單介紹一下如何建立傳統的連線。建立伺服器 必須的模組 from twisted...

在Python中使用 slots

這篇文章主要介紹了在python中使用 slots 方法的詳細教程,slots 方法是python的乙個重要內建類方法,基於python2.x版本,需要的朋友可以參考下 正常情況下,當我們定義了乙個class,建立了乙個class的例項後,我們可以給該例項繫結任何屬性和方法,這就是動態語言的靈活性。...

with語句在Python中使用

引言 with語句生於python2.5,通過 from future import with statement 匯入後使用 2.6以後無需匯入直接使用 with 語句適用於對資源進行訪問的場合,確保不管使用過程中是否發生異常都會執行必要的 清理 操作,釋放資源 用途 最常用的兩個地方,檔案使用後...