python函数之匿名函数和面向过程编程
匿名函数
什么是匿名函数?
匿名函数就是没有名字的函数
为何要用匿名函数?
用于临时使用一次的场景
如何定义匿名函数
lambda 参数 :返回值
有名函数与匿名函数的对比
有名函数:循环使用,保存了名字,通过名字就可以重复引用函数功能
匿名函数:一次性使用,随时随时定义
匿名函数一般与内置函数搭配使用:max,min,sorted,map,reduce,filter等内置函数
下面以薪资为例将匿名函数与max、min、sorted配合使用讲解下
salaries = {
"axx": 30000000,
"bgon": 3000,
"zxx": 1000
}
print(max(salaries,key=lambda name:salaries[name])) # 与max最大值配合使用
print(min(salaries,key=lambda name:salaries[name])) # 与min最小值配合使用
print(sorted(salaries,key=lambda name:salaries[name])) # 与sorted排序配合使用,从小到大排序value
匿名函数与reduce配合使用
函数的作用是将一个序列归纳为一个输出
from functools import reduce #先从functools模块中导出reduce功能函数
reduce(function, sequence, startValue)
函数名 按照一个条件 初始值
from functools import reduce #先从functools模块中导出reduce功能函数
res = reduce(lambda x, y: x + y, [1, 2, 3, 4],10) #数字求和
res = reduce(lambda x, y: x + y, ["a", "b", "c", "d"], "xxx") #字符串拼接
print(res)
匿名函数与map配合使用
添加某种条件映射成一个新列表
names = ['lxx', "hxx", "wxx"]
res = map(lambda name:name+"_vip",names)
print(res)
匿名函数与filter配合使用
过滤出想要的东西
names = ['lxx', "hxx_vip", "wxx_vip"]
res=filter(lambda name:name.endswith('_vip'),names)
print(res)
面向过程编程
什么是面向过程编程
面向过程的核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么
基于面向过程设计程序就好比在设计一条流水线,是一种机械式的思维方式
优点:复杂的问题流程化,进而简单化
缺点:可扩展性差,修改流水线的任意一个阶段,都会牵一发而动全身
应用:扩展性要求不高的场景,典型案例如linux内核,git,httpd

浙公网安备 33010602011771号