Python基础:递归、匿名函数和内置函数

Python基础:递归、匿名函数和内置函数

1、递归求阶乘

def sumR(a):
    if a == 0:
        return 1
    return a * sumR(a - 1)

print(sumR(100))

2、lambda表达式:化简代码

fun = lambda : 100
print(fun, fun())
# <function <lambda> at 0x000001BE62A03E18> 100

计算a+b

fun = lambda a, b: a + b
print(fun(1, 2))

3、lambda的参数形式

fun1 = lambda : 100  # 无参数
print(fun1())
fun2 = lambda a : a  # 一个参数
print(fun2('Hello'))
fun3 = lambda a, b, c=10 : a + b + c  # 默认参数
print(fun3(1, 2))
fun4 = lambda *args : args  # 可变参数*args
print(fun4(1, 2, 3))
fun5 = lambda **kwargs : kwargs  # 可变参数**kwargs
print(fun5(name='TOM', age=23))

4、lambda的应用

带判断的lambda

fun = lambda a, b : a if a > b else b
print(fun(100, 20))

列表数据按字典key的值排序

stu = [
    {'name': 'TOM', 'age': 23},
    {'name': 'XiaoM', 'age': 22},
    {'name': 'Jack', 'age': 24},
]

stu.sort(key=lambda x: x['age'], reverse=True)
print(stu)

5、高阶函数

abs_fun = lambda a : abs(a)
sum_num = lambda a, b, f : f(a) + f(b)
print(sum_num(-1, 2, abs_fun))

6、内置高阶函数

map(func, lst):将func作用于lst

list1 = [1, 2, 3, 4, 5, 6]
fun = lambda a : a ** 2
result = map(fun, list1)
print(list(result))

reduce(func, lst):每次func结果继续和lst下一个元素做累计

import functools

list1 = [1, 2, 3, 4, 5, 6]
fun = lambda a, b : a * b
result = functools.reduce(fun, list1)
print(result)

filter(func, lst):过滤序列,过滤不符合条件的元素

list1 = [i for i in range(10)]
fun = lambda a : a % 2 == 0
result = filter(fun, list1)
print(list(result))
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值