2.5 函数的拓展
1.匿名函数(简化代码)
python中没有这个概念,通过lambda关键字可以简化函数的代码写法
2.lambda表达式
arguments = lambda 参数列表 : 函数体
print(aarguments(参数))
#测试lambda
#原本代码def sum1(x,y):return x+yprint(sum1(1,2))#用lambda简化后的函数sum2 = lambda x,y : x+y #lambda 参数列表 :函数体print(sum2(1,2)) #多个参数的写法#一个参数的写法test1 = lambda x : print(x)test1("wzw")#没有参数的写法test2 = lambda : print("lisi")test2()
#应用:排序
test_list = [4,3,7,1,8,6,2,5]print("排序前:",test_list) #[4,3,7,1,8,6,2,5]test_list.sort() #排序函数sort()print("排序后:",test_list) #[1,2,3,4,5,6,7,8]test_list_lambda = ["aaaaaa","aaa","aa","a","aaaa"]print("排序前:",test_list_lambda)test_list_lambda.sort(key=lambda x : len(x)) #len(x) 定义排序规则为根据字符串的长度来排序print("排序后:",test_list_lambda) #排序后: ['a', 'aa', 'aaa', 'aaaa', 'aaaaaa']
3.偏函数(partial function)
对原有的函数进行增强(设置默认值)
def test_paitail_fn(x,y):print(f"收件地址:{x} , 寄件地址:{y}")import functoolstest_paitail_fn = functools.partial(test_paitail_fn,y = "西安培华学院") #创建偏函数 通过 y = "西安培华学院" 将原函数的 y 参数固定为 "西安培华学院"。test_paitail_fn("汉中") #收件地址:汉中 , 寄件地址:西安培华学院