python3 匿名函式 lambda
阿新 • • 發佈:2019-01-06
lambda
沒有名字的函式,不用寫return
,返回值就是該表示式的結果。
語法:lambda 引數:方法(或三元運算)
lambda x:x*x等同於
def f(x):
return x * x
1,用法舉例:對一個元組的字典進行排序
list1 = [{"name": "haha", "age": "11"}, {"name": "hehe", "age": "12"}, {"name": "xixi", "age": "13"}]
list1.sort(key=lambda x: x['name'])
print(list1)
2,lambda 與map
list1 = [1, 2, 3, 4]
map((lambda x : x+1), list1)
print(list1)
#/usr/local/bin/python3.7 /Users/hpb/Desktop/python/test/lambda.py
#[1, 2, 3, 4]
#Process finished with exit code 0
關於map
map()函式 map()是 Python 內建的高階函式,它接收一個函式 f 和一個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到一個新的 list 並返回。
3,把匿名函式當做一個變數來使用
functi = input("請輸入一個匿名函式:")
fun = eval(functi)
def test(a, b, fun):
result = fun(a,b)
return result
print(test(11,22,fun))
關於eval()
描述
eval() 函式用來執行一個字串表示式,並返回表示式的值。
語法
以下是 eval() 方法的語法:
eval(expression[, globals[, locals]])引數
- expression -- 表示式。
- globals -- 變數作用域,全域性名稱空間,如果被提供,則必須是一個字典物件。
- locals -- 變數作用域,區域性名稱空間,如果被提供,可以是任何對映物件。
返回值
返回表示式計算結果。