- lambda匿名函数(函数名统一都叫lambda)
- 为了解决简单的需求而设计的一句话函数
- 语法:
- lambda 参数 返回值
-
n = lambda a,b: max(a,b)
ret = n(9,4)
print(ret)- 注意:
- 函数的参数可以有多个,多个参数之间用逗号隔开
- 匿名函数只能写一行
- 返回值和正常的函数一样,可以是任意数据类型
- 注意:
- sorted( )排序函数
- 语法
- sorted(iterable,key=None,reverse=Flase)
- 语法
-
lst = [1,2,3,4,5,9,4,8,6,7]
print(sorted(lst)) #得到结果
[1, 2, 3, 4, 4, 5, 6, 7, 8, 9]
#没有key和reverse的值就是默认排序- iterable:可迭代对象
- key:排序规则
- reverse:是否是倒叙.True倒叙,False正序
-
lst = [6,3,2,8,7,4,6,8,1,7,1,6,5,9,1,2]
s = sorted(lst,reverse = True) #True为倒叙
print(s) #结果
[9, 8, 8, 7, 7, 6, 6, 6, 5, 4, 3, 2, 2, 1, 1, 1]- 运行流程:
- 把可迭代对象中的每一个元素交给后面key函数来执行,得到一个数字(权重),通过这个数字进行排序.
- 运行流程:
- filter( )过滤函数
- 把可迭代对象中的每一个元素交给前面的函数进行筛选,函数返回Trun或者False
- 语法:
- filter(function,iterable)
- map( )映射函数
- 把可迭代对象中的数据交给前面的函数进行执行,返回值就是map的处理结果
- 语法:
- map(function,iterable)
- 递归
- 函数自己调用自己(递归深度:最大1000,但是到不了1000就停了)
- 二分法
- 必须是有序序列才可以使用二分查找,每次能够排除掉一半的数据,查找的效率高
- 核心:
- 掐头去尾取中间,一次砍一半
- 算法
- 常规循环
- 递归循环
lst = [22, 33, 44, 55, 66, 77, 88, 99, 101 , 238 , 345 , 456 , 567 , 678 , 789]
def func(n,left,right): #
if left <= right:
mid = (left + right)//2
if n > lst[mid]:
left = mid+1
return func(n,left,right) #递归入口
if n < lst[mid]:
right = mid-1
return func(n,left,right) #递归入口
if n == lst[mid]:
print('找到了!')
return mid #通过return返回值,终止递归
else:
print('没有这个数~~')
return -1
ret = func(88,0,len(lst)-1)
print(ret)
相关文章
- 11-27小学生都能学会的python(
) - 11-27python基础(递归、函数式编程(map、filter、reduce、lambda匿名函数))
- 11-27lamda匿名函数(与sorted(),filter(),map() 一起用), 递归函数, 二分查找
- 11-27Day14--Python--函数二,lambda,sorted,filter,map,递归,二分法
- 11-27匿名函数 python内置方法(max/min/filter/map/sorted/reduce)面向过程编程
- 11-27Python_Mix*匿名函数,sorted,filter,map,递归函数,二分法查找
- 11-27python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))
- 11-27Python map/reduce/filter/sorted函数以及匿名函数
- 11-27(转)Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)
- 11-27Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊