Python Lambda表达式、函数应用与工具
目录
1 Lambda表达式
作用:定义匿名函数
基本格式:lambda 参数1,参数2,...:函数操作
f = lambda name:print(name) #注意:这里的f和f2不是函数名称,而是对象引用的名称
f2 = lambda x,y : x + y
f('Tom')
print(f2(5,3))
Tom
8
注意:这里的f和f2不是函数名称,而是对象引用的名称
lambda x,y : x + y 这个整体也可以作为一个引用对象,后面的括号内可传入参数,匿名函数可直接被调用
name = 'Mike'
(lambda name:print("hello",name)) (name)
hello Tom
函数委托的相关用法: 委托名称 = 函数名
def hello_name(name):
print("hello",name)
while True:
name = input('input your name: \n')
lan = input("input your language:\n c = Chinese \n e = English \n")
if lan == 'c':
action = hello_name #将函数委托给一个引用对象 委托对象 = 函数名
elif lan == 'e':
action = lambda name: print("hello",name) #委托一个匿名函数
else:
print("please input 'c' or 'e' ")
continue
action(name)
input your name:
Mike
input your language:
c = Chinese
e = English
c
hello Mike
input your name:
2 高级工具
map(函数,可迭代对象): 适用于对可迭代对象内的每个元素执行相应函数
l = list(range(1,21)) #range是一个可迭代对象,可以转换成list
res = []
def add_number(x):
return x + 5
#1.循环方式
for x in l:
res.append(x + 5)
print(res)
#2.推导方式
res = [x + 5 for x in l]
print(res)
#3.map()
res = list(map(add_number,l))
res1 = list(map(lambda n:n+5,l)) #lambda函数直接作引用对象
print(res)
print(res1)
[6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
[6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
[6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
[6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
filter(函数,可迭代对象):适用于对可迭代对象内的每个元素执行相应判断和筛选
l = list(range(1,11))
def even_number(x):
return x % 2 ==0
res = list(filter(even_number,l))
res1 = list(filter(lambda n:n % 2 ==0,l))
print(res)
print(res1)