python lambda函数及三个常用的高阶函数


Posted in Python onFebruary 05, 2020

进行编程时,一般我们会给一个函数或者变量起一个名字,该名称是用于引用或寻址函数变量。但是有一个低调的函数,你不需要赋予它名字,因此该函数也叫匿名函数。该函数就是Python中的Lambda函数,下面就来为大家解析python—lambda函数,三个常用的高阶函数。

为什么要使用Python Lambda函数?

匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的。因此Python Lambda函数也称为丢弃函数,它可以与其他预定义函数(如filter(),map()等)一起使用。相对于我们定义的可重复使用的函数来说,这个函数更加简单便捷。

"""
lambda 参数列表 : 返回值
lambda 参数形式:
  1.无参数:lambda:100
  2.一个参数:lambda a: a
  3.默认参数:lambda a, b, c=100: a + b + c
  4.可变参数:*args,返回元组
  lambda *args: args
  5.可变参数:*kwargs,返回字典
  lambda **kwargs: kwargs
lambda 应用:简化代码
  1.判断,lambda a, b: a if a > b else b
  2.列表数据按字典 key 值排序
"""
# def fn1():
#   return 100
# def de1():
#   r = fn1()
#   print(r)
#   r2 = lambda: 100
#   print(r2)      # 地址:<function main.<locals>.<lambda> at 0x00CCD6E8>
#   print(r2())     # 返回值:100
# def test2():
"""
lambda 测试案例
"""
#   fn1 = lambda a, b: a + b
#   print(fn1(1, 2))
#   fn2 = lambda *args: args
#   print(fn2(1, 2, 3))
#   print(fn2(1, 3))
#   print(fn2(1))    # (1,)
#   fn3 = lambda **kwargs: kwargs
#   print(fn3(name='py', age=30))
#
#   fn4 = lambda a, b: a if a > b else b
#   print(fn4(100, 200))
#
#   student = [{'name': 'a', 'id': '1', 'tel': 'a1'},
#     {'name': 'b', 'id': '2', 'tel': 'b2'},
#     {'name': 'c', 'id': '3', 'tel': 'c3'}]
#   student.sort(key=lambda x: x['name'])
#   print(student)
#   student.sort(key=lambda x: x['name'], reverse=True)
#   print(student)
#   student.sort(key=lambda x: x['id'])
#   print(student)
"""
高阶函数:def add_num(a, b, f)
内置高阶函数:
  1.map(func, list):
  将func 应用于list中的每一个元素,返回一个迭代器
  2.reduce(func, list):
  计算结果与下一个数据做累积计算,必须有两个参数
  from functools import reduce
  3.filter(func, list):
  过滤掉不符合条件的元素,返回一个filter对象,可用list()转换
"""
# def add_num(a, b, f):
#   # 传入函数 f
#   return f(a) + f(b)
# def func(x):
#   return x ** 2
from functools import reduce
def add_2(a, b):
  return a + b
def func3(x):
  return x % 2 == 0
def main():
  """
  体验高阶函数
  :return:
  """
  # print(abs(-2))     # 求绝对值
  # print(round(0.1))    # 四舍五入
  # s1 = add_num(1, 2, abs)
  # s2 = add_num(1, 2.5, round)
  # print(s1, s2)
  list1 = [1, 2, 3, 4, 5]
  # map(func, list1)
  # print(list(map(func, list1)))
  # s = reduce(add_2, list1)
  # print(s)
  r = filter(func3, list1)
  print(r)    # <filter object at 0x00CAE2E0>
  print(list(r)) # [2, 4]
if __name__ == '__main__':
  main()

总结

以上所述是小编给大家介绍的python lambda函数及三个常用的高阶函数,希望对大家有所帮助!

Python 相关文章推荐
python通过ssh-powershell监控windows的方法
Jun 02 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
Mar 22 Python
使用python对文件中的数值进行累加的实例
Nov 28 Python
Python发送邮件测试报告操作实例详解
Dec 08 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 Python
Python动态导入模块和反射机制详解
Feb 18 Python
零基础学python应该从哪里入手
Aug 11 Python
python不同版本的_new_不同点总结
Dec 09 Python
python通过cython加密代码
Dec 11 Python
pytorch中的model.eval()和BN层的使用
May 22 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 #Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 #Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 #Python
tensorflow之并行读入数据详解
Feb 05 #Python
tensorflow mnist 数据加载实现并画图效果
Feb 05 #Python
tensorflow 自定义损失函数示例代码
Feb 05 #Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 #Python
You might like
重料打造自己的“宝马”---第三代
2021/03/02 无线电
DOTA2 1月28日更新:监管系统降临刀塔世界
2021/01/28 DOTA
php简单实现批量上传图片的方法
2016/05/09 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
JavaScript常用验证函数实例汇总
2014/11/25 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
JS仿JQuery选择器功能
2017/03/08 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
2019/05/07 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
微信小程序日历插件代码实例
2019/12/04 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
2019/12/20 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
Python遍历目录中的所有文件的方法
2016/07/08 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
Python栈的实现方法示例【列表、单链表】
2020/02/22 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
Python实现京东抢秒杀功能
2021/01/25 Python
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
关爱女孩行动实施方案
2014/03/13 职场文书
初中教师个人工作总结
2015/02/10 职场文书
护理培训心得体会
2016/01/22 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python