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 相关文章推荐
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
python lxml中etree的简单应用
May 10 Python
python中PS 图像调整算法原理之亮度调整
Jun 28 Python
python实现两个dict合并与计算操作示例
Jul 01 Python
python的re模块使用方法详解
Jul 26 Python
python3正则模块re的使用方法详解
Feb 11 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 Python
使用python求解二次规划的问题
Feb 29 Python
Django 自定义权限管理系统详解(通过中间件认证)
Mar 11 Python
Python读入mnist二进制图像文件并显示实例
Apr 24 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 Python
python 求两个向量的顺时针夹角操作
Mar 04 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 Memcached应用实现代码
2010/02/08 PHP
php抓取页面的几种方法详解
2013/06/17 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
js 目录列举函数
2008/11/06 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
2016/08/02 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
微信小程序slider组件使用详解
2018/01/31 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
python 实现堆排序算法代码
2012/06/05 Python
python实现apahce网站日志分析示例
2014/04/02 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
python模拟点击在ios中实现的实例讲解
2020/11/26 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
物流专业毕业生推荐信范文
2013/11/18 职场文书
咨询公司各岗位职责
2013/12/02 职场文书
小学生综合素质评语
2014/04/23 职场文书
群众路线领导对照材料
2014/08/23 职场文书
高温慰问简报
2015/07/21 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
Python Parser的用法
2021/05/12 Python
python lambda 表达式形式分析
2022/04/03 Python