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
posted @ 2021-07-05 15:21  zhutianyu  阅读(41)  评论(0)    收藏  举报