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利用flask sqlalchemy实现分页效果
Aug 02 Python
python3.0 模拟用户登录,三次错误锁定的实例
Nov 02 Python
Python模拟脉冲星伪信号频率实例代码
Jan 03 Python
win8下python3.4安装和环境配置图文教程
Jul 31 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
Sep 04 Python
对Python 内建函数和保留字详解
Oct 15 Python
python3实现网络爬虫之BeautifulSoup使用详解
Dec 19 Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 Python
python set内置函数的具体使用
Jul 02 Python
Django中如何使用sass的方法步骤
Jul 09 Python
解决Django后台ManyToManyField显示成Object的问题
Aug 09 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 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版(2)
2006/10/09 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
php 5.4 全新的代码复用Trait详解
2017/01/05 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
Jquery 扩展方法
2010/05/06 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
按下回车键指向下一个位置的一个函数代码
2014/03/10 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
python实现类之间的方法互相调用
2018/04/29 Python
python实现统计代码行数的小工具
2019/09/19 Python
python zip()函数使用方法解析
2019/10/31 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
Python netmiko模块的使用
2020/02/14 Python
曼联官方网上商店:Manchester United Direct
2017/07/28 全球购物
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
英国乡村时尚和宠物用品专家:Pet & Country
2018/07/02 全球购物
法国足球商店:Footcenter
2019/07/06 全球购物
广告传媒专业应届生求职信
2014/03/01 职场文书
决心书标准格式
2014/03/11 职场文书
职位说明书范文
2014/05/07 职场文书
班级文化标语
2014/06/23 职场文书
科技工作者先进事迹
2014/08/16 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python
angular4实现带搜索的下拉框
2022/03/25 Javascript