1. 程式人生 > >python3 匿名函式 lambda

python3 匿名函式 lambda

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 -- 變數作用域,區域性名稱空間,如果被提供,可以是任何對映物件。

返回值

返回表示式計算結果。