在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 語句適用於對資源進行訪問的場合,確保不管使用過程中是否發生異常都會執行必要的 清理 操作,釋放資源 用途 最常用的兩個地方,檔案使用後...