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写的ARP攻击代码实例
Jun 04 Python
django开发之settings.py中变量的全局引用详解
Mar 29 Python
如何利用python查找电脑文件
Apr 27 Python
python检索特定内容的文本文件实例
Jun 05 Python
如何优雅地处理Django中的favicon.ico图标详解
Jul 05 Python
Python函数参数操作详解
Aug 03 Python
Python中面向对象你应该知道的一下知识
Jul 10 Python
python输出带颜色字体实例方法
Sep 01 Python
Django 批量插入数据的实现方法
Jan 12 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
Feb 21 Python
python2和python3哪个使用率高
Jun 23 Python
python基础之//、/与%的区别详解
Jun 10 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安全编程之加密功能
2006/10/09 PHP
php数组的一些常见操作汇总
2011/07/17 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
深入理解Python装饰器
2016/07/27 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
机电一体化大学生求职信
2013/11/08 职场文书
车工岗位职责
2013/11/26 职场文书
质量标语大全
2014/06/12 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
信仰心得体会
2014/09/05 职场文书
收费员岗位职责
2015/02/14 职场文书
护理工作个人总结
2015/03/03 职场文书
舞出我人生观后感
2015/06/16 职场文书