一,lambda匿名函数
1.语法 函数名=lambda 参数:返回值
a=lambda i:i**2
print(a(2))
2.不能用于复杂的函数
二.sorted()排序函数
1.语法 sorted(可迭代对象(iterable),key=函数名,reserve=false(默认值))
lst=[
{"id":1,"name":"李金晓","age":25},
{"id":2,"name":"老丁","age":23},
{"id":3,"name":"程程","age":254},
{"id":4,"name":"王总","age":255},
{"id":5,"name":"付凌波","age":215}
]
a=sorted(lst,key=lambda dic:dic["age"])
print(a)
三.filter()筛选函数
1.语法 filter(函数,可迭代的对象)
2.第一个参数是函数,将第二个参数中的每一个元素都传给函数,函数如果反回True,留下该元素.
lst=[
{"id":1,"name":"李金晓","age":25},
{"id":2,"name":"老丁","age":23},
{"id":3,"name":"程程","age":254},
{"id":4,"name":"王总","age":255},
{"id":5,"name":"付凌波","age":215}
]
a= filter(lambda dic:dic["age"]>40,lst)
print(a)
print(list(a))
四.map()映射函数
1.语法 map(函数,可迭代对象)
2.把可迭代对象中的每一个元素传递给前面的函数进行处理
lst=[1,24,3,5,6,7]
a=map(lambda i:i**2,lst)
print(a)
print(list(a))
五.递归
1.语法
def func()
func()
fun()
2.
lst = [22, 33, 44, 55, 66, 77, 88, 99, 101, 238, 345, 456, 567, 678, 789]
def func(left,right,n):
if left<=right:
middle=(left+right)//2
if n>lst[middle]:
left=middle+1
elif n<lst[middle]:
right=middle-1
else:
return middle
return func(left,right,n)
else:
return -1
print(func(0,len(lst),101))
六.二分法查找
1.查找的序列必须输有序序列.
1.普通方法
n=int(input("请输入数字"))
lst = [22, 33, 44, 55, 66, 77, 88, 99, 101, 238, 345, 456, 567, 678, 789]
left=0
right=len(lst)-1
while left<=right:
middle=(left+right)//2
if n>lst[middle]:
left=middle+1
elif n<lst[middle]:
right=middle-1
else:
print("存在,位置:"+str(middle))
break
else:
print("不存在")