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通过索引遍历列表的方法
May 04 Python
Python进程间通信用法实例
Jun 04 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
Oct 09 Python
python的多重继承的理解
Aug 06 Python
python去除字符串中的换行符
Oct 11 Python
python实现数独游戏 java简单实现数独游戏
Mar 30 Python
对Python 中矩阵或者数组相减的法则详解
Aug 26 Python
python实现人工智能Ai抠图功能
Sep 05 Python
Python关于拓扑排序知识点讲解
Jan 04 Python
对Keras自带Loss Function的深入研究
May 25 Python
Python anaconda安装库命令详解
Oct 16 Python
python数据分析之单因素分析线性拟合及地理编码
Jun 25 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封装的MSSql操作类完整实例
2016/05/26 PHP
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
Vue.js用法详解
2017/11/13 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
zbar解码二维码和条形码示例
2014/02/07 Python
介绍Python的@property装饰器的用法
2015/04/28 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
Python有序字典简单实现方法示例
2017/09/28 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
2020/06/12 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
中华魂演讲稿
2014/05/13 职场文书
求职信怎么写
2014/05/23 职场文书
工作目标责任书
2014/07/23 职场文书
护士工作失误检讨书
2014/09/14 职场文书
应届生求职自荐信范文
2015/03/04 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL