# 使用匿名函数接收两个参数a和b,返回a、b的较大值
fun7 = lambda a, b: max(a,b)
print(fun7(10,20))
# python中的三元运算符
# 结果1 if 条件 else 结果2
fun8 = lambda a, b : a if a>b else b
print(fun8(13,10))
输出结果
20
13
input_num = (1,2,3,4,5)
# 内置函数:str() int() float()
ret = map(str, input_num)
print(ret)
print(list(ret))
ls = [1,2,3,4,5]
ret = list(map(lambda x : x*10, ls))
print(ret)
输出结果
from functools import reduce
ls = [1,2,3,4,5]
ret_sum = reduce(lambda x, y: x+y, ls)
print(ret_sum)
ret_pro = reduce(lambda x, y: x*y, ls)
print(ret_pro)
输出结果
15
120
import random
ls = [random.randint(10,30) for _ in range(10)]
print(ls)
ret = filter(lambda x : x%2==0, ls)
print(ret)
print(list(ret))
输出结果
[15, 23, 17, 14, 16, 25, 12, 10, 12, 18]
[14, 16, 12, 10, 12, 18]
menu = [['h红烧牛肉面', 18], ['x香辣牛肉面', 16], ['a安徽板面', 15], ['c重庆小面', 20]]
# 排序
menu.sort()
print(menu)
# 按单价排序 —— itemgetter——获取多维数组中某个维度的元素值
import operator
menu.sort(key=operator.itemgetter(1), reverse=True)
print(menu)
# 按单价排序 —— 使用匿名函数
menu.sort(key=lambda x:x[1], reverse=False)
print(menu)
输出结果
[['a安徽板面', 15], ['c重庆小面', 20], ['h红烧牛肉面', 18], ['x香辣牛肉面', 16]]
[['c重庆小面', 20], ['h红烧牛肉面', 18], ['x香辣牛肉面', 16], ['a安徽板面', 15]]
[['a安徽板面', 15], ['x香辣牛肉面', 16], ['h红烧牛肉面', 18], ['c重庆小面', 20]]
1.有一个列表n=[1,2,3,4,5,6,7,8,9], 请使用匿名函数输出[10,20,30,40,50,60,70,80,90]
n=[1,2,3,4,5,6,7,8,9]
ret = list(map(lambda x:x*10,n))
print(ret)
输出结果
[10, 20, 30, 40, 50, 60, 70, 80, 90]
2.使用匿名函数做出递归效果,求50-100的累加和
ret = reduce(lambda x,y:x+y,range(50,101))
print(ret)
输出结果
3825
# 装饰器
def out_fun(function):
def in_fun():
print("挂上一颗星星")
function()
print("挂上一个礼物盒")
return in_fun
# 被装饰函数
def my_tree():
print("简简单单一棵树")
# 第一种调用方式
out_fun(my_tree)()
# 问:第一种调用方式,被装饰函数真的装饰了吗
my_tree() # 并没有新增功能
# 第二种调用方式
my_tree = out_fun(my_tree)
# 问:第二种调用方式,被装饰函数真的装饰了吗
my_tree()
输出结果
挂上一颗星星
简简单单一棵树
挂上一个礼物盒
简简单单一棵树
挂上一颗星星
简简单单一棵树
挂上一个礼物盒
# 装饰器
def out_fun(function):
def in_fun():
print("挂上一颗星星")
function()
print("挂上一个礼物盒")
return in_fun
# 被装饰函数
@out_fun
def my_tree():
print("简简单单一棵树")
my_tree()
输出结果
挂上一颗星星
简简单单一棵树
挂上一个礼物盒
# 装饰器
def out_fun(function):
def in_fun(x):
print("挂上一颗星星")
function(x)
print("挂上一个礼物盒")
return in_fun
# 被装饰函数
@out_fun
def my_tree(x):
print(f"简简单单{x}棵树")
my_tree(3)
输出结果
挂上一颗星星
简简单单3棵树
挂上一个礼物盒
import time
# 装饰器
def out_fun(function):
def in_fun(*args, **kwargs):
start = time.time()
function(*args, **kwargs)
end = time.time()
print(end - start)
return in_fun
# 被装饰函数1
@out_fun
def fun1(x):
time.sleep(1)
print(x)
fun1(1)
# 被装饰函数2
@out_fun
def fun2(x, y, z):
time.sleep(1)
print(x + y + z)
fun2(1,2,3)
输出结果
1
1.0003464221954346
6
1.0008840560913086
def decoration(dec_arg):
def out_fun(function):
def in_fun(x):
print(dec_arg)
print("挂上一颗星星")
function(x)
print("挂上一个礼物盒")
return in_fun
return out_fun
# 被装饰函数
@decoration("我是装饰器的参数")
def my_tree(x):
print(f"简简单单{x}棵树")
my_tree(3)
输出结果
我是装饰器的参数
挂上一颗星星
简简单单3棵树
挂上一个礼物盒
# 装饰器1
def out_fun_1(function):
def in_fun_1(*args, **kwargs):
print("装饰器1开始调用")
function(*args, **kwargs)
print("装饰1结束调用")
return in_fun_1
# 装饰器2
def out_fun_2(function):
def in_fun_2(*args, **kwargs):
print("装饰器2开始调用")
function(*args, **kwargs)
print("装饰2结束调用")
return in_fun_2
# 嵌套装饰 被装饰函数
@out_fun_1
@out_fun_2
def my_tree(x):
print(f"{x}棵树")
my_tree(3)
输出结果
装饰器1开始调用
装饰器2开始调用
3棵树
装饰2结束调用
装饰1结束调用