在 Python 中使用 Lambda 函式 - filter()

使用 PySpark 的 Big Data 基礎

Upendra Devisetty

Science Analyst, CyVerse

什麼是 Python 的匿名函式?

  • Lambda 函式是 Python 中的匿名函式

  • 功能強大,常與 map()filter() 高效搭配

  • 類似 def,可建立之後呼叫的函式

  • 傳回沒有名稱的函式(也就是匿名)

  • 可內嵌函式定義,或延後執行某段程式碼

使用 PySpark 的 Big Data 基礎

Lambda 函式語法

  • lambda 函式的一般形式為
lambda arguments: expression
  • lambda 函式範例
double = lambda x: x * 2
print(double(3))
6
使用 PySpark 的 Big Data 基礎

def 與 lambda 的差異

  • 示範計算數字的立方的 Python 程式碼
def cube(x): 
     return x ** 3
g = lambda x: x ** 3
print(g(10)) 
print(cube(10))
1000
1000
  • lambda 不需要 return 陳述式

  • lambda 函式可放在任何地方

使用 PySpark 的 Big Data 基礎

在 Python 中使用 Lambda 函式 - map()

  • map() 會將函式套用到輸入串列的所有項目

  • map() 的一般語法

map(function, list)
  • map() 範例
items = [1, 2, 3, 4]
list(map(lambda x: x + 2 , items))
[3, 4, 5, 6]
使用 PySpark 的 Big Data 基礎

在 Python 中使用 Lambda 函式 - filter()

  • filter() 接受一個函式與一個串列,回傳該函式判斷為 true 的新串列

  • filter() 的一般語法

filter(function, list)
  • filter() 範例
items = [1, 2, 3, 4]
list(filter(lambda x: (x%2 != 0), items))
[1, 3]
使用 PySpark 的 Big Data 基礎

一起來練習吧!

使用 PySpark 的 Big Data 基礎

Preparing Video For Download...