進階Python – 星字/米字算子 與 lambda




星字/米字算子

在python有一個方便的在python有一個方便的拆解算子 *,其中又分為序列拆解 算子* 與字典拆解算子 **

首先考慮下面的sum()函式

def sum(a, b):
    return a + b

星字算子會順序的將變數放入sum()中

values = (1, 2)
s = sum(*values) # 星字操作符會順序的將變數放入sum()中

雙星算子會將對應的key放到sum()中

values = { 'b': 1, 'a': 2 }
s = sum(**values) # 雙星操作符會將對應的key放到sum()中

當然直接用在func承接變數也是可以的

def foo(*features):
    for f in features:
        print(f)

foo(1,2,3,4,5)

lambda

lambda在python被用作簡單匿名函式,適合用作一些簡易處理與表達

語法

lambda arguments : expression

簡單用法

用 lambda 定義一個 sum()

sum_lambda = lambda a,b:a+b

同等效果的func寫法

def sum_func(a,b):
    return a+b

在上面的例子中,可將此lambda解析為

lambda arguments : return_value

加入判斷式

lambda arguments : return_true if condition else return_false

一個簡單的例子

more_then_x = lambda x,y : True if y > x else False
more_then_x(50,100) # true
more_then_x(50,10) # false

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料