携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第31天,点击查看活动详情
一、递归函数
如果一个函数在内部不调用其他函数,而是调用自己本身的话,那么这个函数就是递归函数。 遵循:
- 必须要有出口
- 每次递归都要向出口靠近
例:
def add_num(i):
if i == 10:
return i
else:
return i + add_num(i+1)
print(add_num(1))
效果:
二、匿名函数
用lambda
关键词能创建小型匿名函数。这种函数的命名省略了def
声明函数的标准步骤。
格式:
lambda 参数列表: 返回运算表达式
匿名函数的使用场合: 1、匿名参数作为参数去使用:
def func1(a, f):
r = f(a)
print(r)
func1(8, lambda x: x * 2)
4.1、高阶函数
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,同样,我们还可以把一个函数当作另一个函数的返回值,这周函数的使用方式我们称之为高阶函数。
系统的高阶函数:max()、min()、sorted()
min()、sorted()
用法跟以上max()
类似。
系统的高阶函数(过滤):filter(None or function, Iteratable)
返回可迭代的filter object
,把结果转成list
就行。
list1 = [{'name': 'tom', 'age': 19},
{'name': 'rose', 'age': 20},
{'name': 'jack', 'age': 22},
{'name': 'Jane', 'age': 17}]
r = filter(lambda x: x['age'] > 18, list1)
print(r)
print(list(r))
效果:
系统的高阶函数(映射提取出来某项):map(None or function, Iteratable)
list1 = [{'name': 'tom', 'age': 19},
{'name': 'rose', 'age': 20},
{'name': 'jack', 'age': 22},
{'name': 'Jane', 'age': 17}]
r = map(lambda x: x['name'].title(), list1)
print(r)
print(list(r))
效果:
函数工具里的高阶函数(对一个序列进行压缩运算,得到累加的值):reduce(function, sequence, initial=_initial_missing)
from functools import reduce
r = reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])
print(r)
如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持