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获取脚本所在目录的正确方法
Apr 15 Python
python的迭代器与生成器实例详解
Jul 16 Python
python django 增删改查操作 数据库Mysql
Jul 27 Python
django之对FileField字段的upload_to的设定方法
Jul 28 Python
python3 深浅copy对比详解
Aug 12 Python
对pytorch中的梯度更新方法详解
Aug 20 Python
Python是什么 Python的用处
May 26 Python
python如何实时获取tcpdump输出
Sep 16 Python
python 实现压缩和解压缩的示例
Sep 22 Python
如何编写python的daemon程序
Jan 07 Python
Python实现生成bmp图像的方法
Jun 13 Python
如何在Python中妥善使用进度条详解
Apr 05 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
js读取cookie方法总结
2014/10/31 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
Vue数字输入框组件示例代码详解
2020/01/15 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
2020/01/26 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
python中threading超线程用法实例分析
2015/05/16 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
2019/01/30 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
python命令行参数用法实例分析
2019/06/25 Python
python编写简单端口扫描器
2019/09/04 Python
Python with语句用法原理详解
2020/07/03 Python
企业管理部经理岗位职责
2013/12/24 职场文书
庆七一活动方案
2014/01/25 职场文书
八一建军节部队活动方案
2014/02/04 职场文书
班组长岗位职责
2014/03/03 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript