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 04 Python
详细解析Python中的变量的数据类型
May 13 Python
python清除指定目录内所有文件中script的方法
Jun 30 Python
Python 中Django安装和使用教程详解
Jul 03 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
通过cmd进入python的步骤
Jun 16 Python
Python自动创建Excel并获取内容
Sep 16 Python
Python在后台自动解压各种压缩文件的实现方法
Nov 10 Python
Pycharm Plugins加载失败问题解决方案
Nov 28 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
Feb 25 Python
Opencv中cv2.floodFill算法的使用
Jun 18 Python
python计算列表元素与乘积详情
Aug 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
php strtotime 函数UNIX时间戳
2009/01/14 PHP
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
劣质的PHP代码简化
2010/02/08 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
jQuery Ajax异步处理Json数据详解
2013/11/05 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
Python 面向对象 成员的访问约束
2008/12/23 Python
Python的函数的一些高阶特性
2015/04/27 Python
python模块smtplib学习
2018/05/22 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
python读写csv文件的方法
2019/08/13 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
Django中template for如何使用方法
2021/01/31 Python
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
密封类可以有虚函数吗
2014/08/11 面试题
一些Solaris面试题
2013/03/22 面试题
可口可乐广告词
2014/03/20 职场文书
英文自荐信常用句子
2014/03/26 职场文书
教师党员自我评价范文
2015/03/04 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书