TA的每日心情 | 开心 2021-12-13 21:45 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
|
目录
一、三元表达式
二、递归函数
三、匿名函数
四、内置函数
一、三元表达式
三元表达式本身是为了简化代码,仅用于简单的函数,只有一个的判定条件
例
- def max2(x,y):
- return x if x > y else y
- print(max2(10,11))
复制代码
二、递归函数
1、定义:
在函数调用过程中直接或者间接的调用函数本身
2、两种调用方式
- #直接调用
- def foo():
- print("from foo")
- foo()
- foo()
- #间接调用
- def bar():
- print("from bar")
- foo()
- def foo():
- print("from foo")
- bar()
- foo()
复制代码
3、递归分为两个过程
1、回溯:一定要满足某种条件回溯,否则无限递归
2、递推:得到值返回递推每一层的值,一层层的结束
- items=[1,[2,[3,[4,[5,[6,[7,[8,[9,[10,]]]]]]]]]] def tell(l): for item in l: if type(item) is not list: print(item) else: tell(item) tell(items)
复制代码
三、匿名函数
1、匿名函数的三点强调 - 1 匿名的目的就是要没有名字,给匿名函数赋给一个名字是没有意义的
- 2 匿名函数的参数规则、作用域关系与有名函数是一样的
- 3 匿名函数的函数体通常应该是 一个表达式,该表达式必须要有一个返回值
- 2、匿名函数的应用
复制代码
- salaries={ "sxx":3000, "qzl":100000000, "wxf":10000, "lh":2000 } print(max(salaries,key=lambda x:salaries[x])) print(min(salaries,key=lambda x:salaries[x])) #排序 salaries=sorted(salaries,key=lambda x:salaries[x]) #默认是升序排 salaries=sorted(salaries,key=lambda x:salaries[x],reverse=True) #降序 nums=[1,11,9] nums=sorted(nums) #默认是升序 print(nums) # map:映射, nums=[1,2,3,4,5] res=map(lambda x:x**2,nums) name=["a","b","c","d"] res=map(lambda x:x+"_sb",name) qes=map(lambda x:x+"_nb" if x=="c" else x+"_sb",name) print(list(res)) print(list(qes)) #reduce:合并 from functools import reduce res=reduce(lambda x,y:x+y,range(101),0) print(res) l=["a","b","c","d"] qes=reduce(lambda x,y:x+y"",l) print(qes) #filter过滤判断为假的值 name=["qzl_nb","hwl_nb","lx_nb","sxx"] res=filter(lambda x: x.endswith("nb") ,name) print(list(res)) age=[12,18,45,55,96] res=filter(lambda x:x>30,age) print(list(res))
复制代码
四、内置函数
|
|