1.算法之二分法
# 需求:有一个按照从小到大顺序排列的数字列表 # 需要从该数字列表中找到我们想要的那个一个数字 # 如何做更高效??? nums=[-3,4,7,10,13,21,43,77,89] find_num=10
# def binary_search(find_num,l): # print(l) # if len(l) == 0: # print('找的值不存在') # return # mid_index=len(l) // 2 # # if find_num > l[mid_index]: # # 接下来的查找应该是在列表的右半部分 # l=l[mid_index+1:] # binary_search(find_num,l) # elif find_num < l[mid_index]: # # 接下来的查找应该是在列表的左半部分 # l=l[:mid_index] # binary_search(find_num,l) # else: # print('find it') # # binary_search(find_num,nums)
2.面向过程的编程思想
# 面向过程的编程思想: # 核心是"过程"二字,过程即流程,指的是做事的步骤:先什么、再什么、后干什么 # 基于该思想编写程序就好比在设计一条流水线 # 优点:复杂的问题流程化、进而简单化 # 缺点:扩展性非常差 # 面向过程的编程思想应用场景解析: # 1、不是所有的软件都需要频繁更迭:比如编写脚本 # 2、即便是一个软件需要频繁更迭,也不并不代表这个软件所有的组成部分都需要一起更迭
3.匿名函数
3.1def用于定义有名函数
# func=函数的内存地址 # def func(x,y): # return x+y
3.2lamdab用于定义匿名函数
print(lambda x,y:x+y)
3.3调用匿名函数
# 方式一: # res=(lambda x,y:x+y)(1,2) # print(res) # 方式二: # func=lambda x,y:x+y # res=func(1,2) # print(res)
3.4.匿名用于临时调用一次的场景:更多的是将匿名与其他函数配合使用
4.匿名函数的应用
salaries={ 'siry':3000, 'tom':7000, 'lili':10000, 'jack':2000 } # 需求1:找出薪资最高的那个人=》lili # 迭代出的内容 比较的值 # 'siry' 3000 # 'tom' 7000 # 'lili' 10000 # 'jack' 2000 # def func(k): # return salaries[k] # ========================max的应用 # res=max(salaries,key=func) # 返回值=func('siry') # print(res) # res=max(salaries,key=lambda k:salaries[k]) # print(res) # ========================min的应用 # res=min(salaries,key=lambda k:salaries[k]) # print(res) # ========================sorted排序 # salaries={ # 'siry':3000, # 'tom':7000, # 'lili':10000, # 'jack':2000 # } res=sorted(salaries,key=lambda k:salaries[k],reverse=True) # print(res) # ========================map的应用(了解) # l=['alex','lxx','wxx','薛贤妻'] # new_l=(name+'_dsb' for name in l) # print(new_l) # res=map(lambda name:name+'_dsb',l) # print(res) # 生成器 # ========================filter的应用(了解) # l=['alex_sb','lxx_sb','wxx','薛贤妻'] # res=(name for name in l if name.endswith('sb')) # print(res) # res=filter(lambda name:name.endswith('sb'),l) # print(res) # ========================reduce的应用(了解) from functools import reduce res=reduce(lambda x,y:x+y,[1,2,3],10) # 16 print(res) res=reduce(lambda x,y:x+y,['a','b','c']) # 'a','b' print(res)
来源:https://www.cnblogs.com/chenyoupan/p/12577564.html