内置函数02
内置函数二:
1. λ匿名函数
lambda 参数 : 返回值
1.函数的参数可以有多个.多个参数之间用逗号隔开
2.匿名函数不管多复杂,只能写一行,且逻辑结束后直接返回数据
3.返回值和正常函数一样,可以使任意数据类型.
例如:
def fang(x):
return x**2
ret = fang(5)
print(ret)
zrf = lambda x:x**2 # 匿名函数 lambda 参数返回值
ret = zrf(10)
print(ret)
给参数传递两个参数a,b 返回a+b的结果
a = lambda a,b a+b
print(a(100,500))
2. sorted 排序
语法: sorted(iterable,key = None.reverse = False)
iterable:可迭代对象
key: 排序规则(排序函数),在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数.根据函数运算的结果进行排序.
reverse:是否倒序.True 倒序,False 正序
例如:
lst = [1,2,3,4,5]
lst2= sorted(lst)
print(lst) # 原列表不会改变
print(lst2) # 新列表是经过排序的
和lambda组合使用:
lst = ['麻花藤','岸本齐史','食品与药品监督局','许仙']
def func(s):
return len(s)
print(sorted(lst,key = lambda s : len(s)))
3. filter 筛选
语法: filter(func,iterable)
流程: 把可迭代对象中的每一个元素拿出来,放到func中运行.返回True/False.根据返回的True和False来决定这个数据是否保留 满足条件的保留 不满足的舍弃
例如:
lst = [1,2,3,4,5,6,7]
l1 = filter(lambda x: x%2 == 0,lst) # 筛选所有的偶数
print(l1)
4. map 映射
语法: map(func, iterable)
流程:把可迭代对象中的每一个元素拿出来,放到func中运行.返回数据就是结果.
例如:
def func(e):
return e*e
mp = map(func,[1,2,3,4,5])
print(list(mp))
可改写成print(list(map(lambda x : x*x,[1,2,3,4,5])))
计算两个列表相同位置数据的和:
lst= [1,2,3,4,5]
lst2= [1,2,3,4,5]
print(list(map(lambda x,y:x+y,lst,lst2)))
5. 递归(难点)
可以用来遍历各种树形结构,比如文件夹系统 可以使用递归来遍历该文件夹中所有文件.
特点
自己调用自己
递归的出口: return
递归的循环条件:动
6.二分法查值:
前提:可迭代对象有序排列
核心思想 掐头截尾取中间 查询效率非常高