隐匿函数,二分法 冒泡排序

一,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("不存在")

七 冒泡排序
# 2. 给出一个纯数字列表. 请对列表进行排序(升级题).
# 思路:
# 1. 完成a和b的数据交换. 例如, a = 10, b = 24 交换之后, a = 24, b = 10
# 2. 循环列表. 判断a[i]和a[i+1]之间的大小关系, 如果a[i]比a[i+1]大. 则进行互换. 循环结束的时候. 当前列表中最大的数据就会被移动到最右端.
# 3. 想一想, 如果再次执行一次上面的操作. 最终第二大的数据就移动到了右端. 以此类推. 如果反复的进行执行相应的操作. 那这个列表就变成了一个有序列表.
lst=[12,53,11,23,66,44,2,13]
for a in range(len(lst)):
    i=0
    while i <len(lst)-1:
        if lst[i]>lst[i+1]:
            lst[i],lst[i+1]=lst[i+1],lst[i]
        i=i+1
print(lst)
#
View Code
原文地址:https://www.cnblogs.com/hu13/p/9342106.html