5 python中的lambda表示式

2021-09-26 10:42:16 字數 2495 閱讀 3017

lambda 函式,又稱匿名函式(不需要指定函式名)。當我們需要定義乙個函式時,又懶得寫命名時時。就可以通過lambda實現。另外使得**更加簡潔。

匿名函式語法:

def add(x, y):

return x + y

改寫成lambda的方式如下:

lambda_add = lambda x, y: x + y

print(lambda_add(1, 2)) # 3

print(add(1, 2)) # 3

# x為入口引數,x平方為函式體

m = lambda x : x ** 2

print(m(1)) # 1

print(m(2)) # 4

print(m(3)) # 9

# 無論入口引數為什麼都會返回1

m = lambda x: 1

print(m('abc')) # 1

print(m(12)) # 1

# 輸入任意多個數,求和

m = lambda *args : sum(args)

print(m(1, 2, 3)) # 6

m = lambda x : x if x < 10 else '-'

print(m(1)) # 1

print(m(5)) # 5

print(m(11)) # -

全域性函式

在python中有幾個已經定義好的全域性函式供我們直接使用

1、sort函式。

對列表中的元素進行排序,預設公升序排列。

sort(key=none, reverse=false)

# print([[6, 1], [3, 2], [9, 4], [(1, 5)]].sort(lambda x: x[0]))

# 按照二維列表的第乙個元素進行排序

# [(1, 5), (3, 2), (6, 1), (9, 4)]

print(sorted([(6, 1), (3, 2), (9, 4), (1, 5)], key=lambda x: x[0]))

dict1 =

# 按照字典的鍵排序,如果按照值排序則lambda x: x[1] ,返回元組組成的列表

# [('a', 'v2'), ('b', 'v3'), ('c', 'v1')]

print(sorted(dict1.items(), key=lambda x: x[0]))

# 按照4-x的絕對值進行排序(離4距離的大小排序)

# [4, 3, 5, 2, 6, 1, 7]

print(sorted([1, 2, 3, 4, 5, 6, 7],key=lambda x: abs(4-x)))

2、filter函式。

用於過濾列表中符合條件的元素。

filter(function, iterable)

# 過濾列表中能被2整除的--- 偶數

lst = filter(lambda x : x % 2 == 0, [1, 2, 3, 4, 5])

# [2, 4]

print(list(lst))

# 過濾能被3整除的數

# [3]

lst = filter(lambda x : x % 3 == 0, [1, 2, 3])

print(list(lst))

# 求 1- 100內的整數平方根

import math

lst = filter(lambda x : math.sqrt(x) % 1 == 0, range(1, 101))

# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

print(list(lst))

3、map函式。

根據提供的函式對執行的序列做對映。

map(function, iter)

# 對列表元素求平方

m = map(lambda x : x ** 2, [1, 2, 3, 4])

# [1, 4, 9, 16]

print(list(m))

# 兩個列表,相同位置的元素相加

m = map(lambda x, y: x + y, [1, 2, 3, 5], [9, 8, 7, 5])

# [10, 10, 10, 10]

print(list(m))

# 將列表中的偶數值修改為0,奇數保持不變

m = map(lambda x : 0 if x % 2 == 0 else x, [9, 4, 1, 6, 8])

# [9, 0, 1, 0, 0]

print(list(m))

5 Python中的控制語句

3推倒或內涵 選擇語句的基本形式 if 條件 語句elif 條件 語句else 語句if 語句示例 age input please input your year age int age if age 18 print 未成年 elif age 18 and age 25 print 青年 els...

5 python教程 函式

coding utf 8 表示檔案的編碼是utf8 fun1的函式體為空 需要使用pass語句佔位,因為函式體至少要有乙個句 對編寫框架程式有用處 def fun1 pass 乙個最簡單的函式,輸入乙個數,返回這個數的兩倍 def fun2 i return i 2 返回多個值,返回值是乙個元組 d...

5 python 文字解析

5.python 文字解析 這一章節我們簡單的聊聊文字解析的兩種方法 1.分片,通過分片,記錄偏移處,然後提取想要的字串 例子 line aaa bbb ccc col1 line 0 3 col3 line 8 col1 aaa col3 ccc 2.split line aaa bbb ccc ...