python 匿名函数和递归函数

匿名函数lambda

匿名函数:lambda  x,y:x+y

上述解释:x,y分别是函数的函数,x+y是函数的返回值

匿名函数的命名规则,用lamdba 关键字标识,冒号(:)左侧表示函数接收的参数(a,b) ,冒号(:)右侧表示函数的返回值(a+b)。

  因为lamdba在创建时不需要命名,所以,叫匿名函数

等同于普通函数:

def test(x,y):
    return x+y

匿名函数只是没有函数名,只要是配合内置函数使用

示例1:

# filter##过滤(将布尔值为True的结果过滤出来)
name_l=[{"name":"tom","age":222},
      {"name": "alex", "age": 333},
      {"name": "jack", "age": 133},
      {"name": "sun", "age": 363},
      ]
# 使用匿名函数
res=filter(lambda d:d["age"]>200,name_l)
for i in res:
    print(i)

执行结果是:

{‘name‘: ‘tom‘, ‘age‘: 222}
{‘name‘: ‘alex‘, ‘age‘: 333}
{‘name‘: ‘sun‘, ‘age‘: 363}

示例2:

#map# 合并映射
l=[1,2,3,4,5]
res=map(lambda x:x**2,l)#求平列表里的平方值,并以列表的方式呈现
print(list(res))

执行结果是:

[1, 4, 9, 16, 25]

  

递归函数:

定义:定义:在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

递归函数的优点:    是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。

递归特性:

1. 必须有一个明确的结束条件

2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少

3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返     回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。)

示例:

def price(n):
    if n==1:
        return 100
    else:
        return price(n-1)+100#在函数内部调用自身
print(price(5))

执行结果是:

500

   

时间: 2024-12-08 17:54:14

python 匿名函数和递归函数的相关文章

python基础——匿名函数及递归函数

python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x表示函数参数. 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. 2 匿名函数举例 用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突.此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数: >>> f = lam

python第五天:协程,匿名函数,递归函数,模块导入,re模块

上节回顾 函数对象 函数可以被当成数据来传递 def func(): pass 1.可以被引用.f=fun 2.可以当做参数传递给另外一个函数 3.可以作为函数的返回值 4.可以当做容器类型的元素 比如用户有10多个参数,我们不需要写10多个if判断.可以写一个字典. dic = {'func1':func1,'func2':func2} 调用个时候就用dic['func1']() 函数的嵌套 函数的嵌套可以分为两种:嵌套定义和嵌套调用. 嵌套调用:函数的执行过程中调用其他的函数,可以更加细化的

Python基础----内置函数补充、匿名函数、递归函数

内置函数补充 python divmod()函数:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b) 语法: 1 divmod(a, b) #a.b为数字,a为除数,b为被除数 示例: 1 >>> divmod(7, 2) 2 (3, 1) #3为商,1为余数 3 >>> divmod(7, 2.5) 4 (2.0, 2.0) 应用:web前端页数计算 1 total_count=73 2 per_count=23 3 res=div

python基础之内置函数补充、匿名函数、递归函数

内置函数补充 python divmod()函数:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b) 语法: 1 divmod(a, b) #a.b为数字,a为除数,b为被除数 示例: 1 >>> divmod(7, 2) 2 (3, 1) #3为商,1为余数 3 >>> divmod(7, 2.5) 4 (2.0, 2.0) 应用:web前端页数计算 1 total_count=73 2 per_count=23 3 res=div

python之内置函数(二)与匿名函数、递归函数初识

一.内置函数(二)1.和数据结构相关(24)列表和元祖(2)list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素).tuple:将一个可迭代对象转化成元组(如果是字典,默认将key作为元组的元素) 2.相关内置函数(2)reversed:将一个序列翻转,并返回此翻转序列的迭代器. *****slice:构造一个切片模板,用于列表的切片.*** 2-1.reversed()与列表的reverse()区分:列表的reverse()只能列表使用:列表.reverse(),对原列

Day10:内置函数、匿名函数、递归函数

一.内置函数 1.数学运算类 2.集合类操作 内置函数个别使用示例 1.any 集合中的元素有一个为真的时候为真, 特别的,若为空串返回为False 1 print(any([0,''])) 2 print(any([0,'',1])) 执行结果 1 False 2 True 2.divmod 取商得余数,用于做分页显示功能 1 print(divmod(10,3)) #取商得余数,用于做分页显示 执行结果 1 (3, 1) 3.eval  把字符串中的数据结构给提取出来 1 dic={'nam

day4之内置函数、匿名函数,递归函数

内置函数: https://www.processon.com/view/link/5adc6062e4b04721d63171eb?pw=3218 匿名函数:lambda lambda 语法: lambda 参数: 表达式 lambda存在意义就是对简单函数的简洁表示. # 现有两元组 (('a'),('b')), (('c'), ('d')),请用python中的匿名函数生成[{'a':'c'}, {'b':'d'}] # t1 = (('a'),('b')) # t2 = (('c'),

第四课 函数补充--装饰器、迭代器、生成器、匿名函数、递归函数

1.装饰器(补充) (在原有的函数前后增加功能,且不改变原函数的调用方式) 1.1.简单的装饰器构成: def timer(func): def inner(*args,**kwargs): '''执行函数之前要做的''' re = func(*args,**kwargs) '''执行函数之后要做的''' return re return inner def outer(flag): def timer(func): def inner(*args,**kwargs): if flag: pri

匿名函数及递归函数

匿名函数:  即没有名字 lambda  例:(lambda x , y: x +y)(4,5)打印:9 函数内容:return x +y 冒号后面只能跟1个表达式冒号之后,不能出等号.return语句只能写在1行上    递归函数  函数运行顺序:每一次函数调用,都跟其他函数没有关系,都是独立的. 递归Recursion:函数直接或间接调用自身就是 递归 递归一定要有边界条件当边界条件不满足,递归前进当边界条件满足的时候,递归返回  python在堆函数栈达到一定范围会停止并报错import