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教程之全局变量用法
Jun 27 Python
pandas数值计算与排序方法
Apr 12 Python
Python子类继承父类构造函数详解
Feb 19 Python
python交易记录链的实现过程详解
Jul 03 Python
linux环境中没有网络怎么下载python
Jul 07 Python
python3 requests库文件上传与下载实现详解
Aug 22 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
Dec 19 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
Mar 09 Python
浅谈Python线程的同步互斥与死锁
Mar 22 Python
python 根据列表批量下载网易云音乐的免费音乐
Dec 03 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 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图片加中文水印实现代码分享
2012/10/31 PHP
php中memcache 基本操作实例
2015/05/17 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
理解javascript模块化
2016/03/28 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
详解vue项目中实现图片裁剪功能
2019/06/07 Javascript
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
教育科学研究生自荐信
2013/10/09 职场文书
自荐信格式技巧有哪些呢
2013/11/19 职场文书
技术经理的自我评价范文
2013/12/03 职场文书
《桥》教学反思
2014/04/09 职场文书
委托协议书范本
2014/04/22 职场文书
材料专业大学毕业生自荐书
2014/07/02 职场文书
小学教师节活动总结
2015/03/20 职场文书
导游词之清晏园
2019/11/22 职场文书
React配置子路由的实现
2021/06/03 Javascript