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在windows下实现备份程序实例
Jul 04 Python
python 自动去除空行的实例
Jul 24 Python
Django model序列化为json的方法示例
Oct 16 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
python通过移动端访问查看电脑界面
Jan 06 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
Jan 08 Python
Python脚本去除文件的只读性操作
Mar 05 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
Python中有几个关键字
Jun 04 Python
宝塔面板成功部署Django项目流程(图文)
Jun 22 Python
Python使用openpyxl复制整张sheet
Mar 24 Python
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Apr 21 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
php微信公众号开发之图片回复
2018/10/20 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
javascript 表单规则集合对象
2009/07/21 Javascript
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
详解vue引入子组件方法
2019/02/12 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python实现用于测试网站访问速率的方法
2015/05/26 Python
python机器学习之神经网络(三)
2017/12/20 Python
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
python 爬取马蜂窝景点翻页文字评论的实现
2020/01/20 Python
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
会计电算化专业自荐信
2014/03/15 职场文书
推普周活动总结
2014/08/28 职场文书
2015年工程部工作总结
2015/04/30 职场文书
节水宣传标语口号
2015/12/26 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL