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 相关文章推荐
编写自定义的Django模板加载器的简单示例
Jul 21 Python
Python实现的递归神经网络简单示例
Aug 11 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
Feb 07 Python
解决matplotlib库show()方法不显示图片的问题
May 24 Python
python迭代dict的key和value的方法
Jul 06 Python
pycharm运行程序时在Python console窗口中运行的方法
Dec 03 Python
Python地图绘制实操详解
Mar 04 Python
Python 3 判断2个字典相同
Aug 06 Python
如何使用python3获取当前路径及os.path.dirname的使用
Dec 13 Python
Python如何实现FTP功能
May 28 Python
python Matplotlib基础--如何添加文本和标注
Jan 26 Python
彻底弄懂Python中的回调函数(callback)
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分页函数代码(简单实用型)
2010/12/02 PHP
PHP容易忘记的知识点分享
2013/04/30 PHP
php根据日期判断星座的函数分享
2014/02/13 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
js实现动态改变字体大小代码
2014/01/02 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
python写入xml文件的方法
2015/05/08 Python
Python操作MongoDB详解及实例
2017/05/18 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
Python Selenium参数配置方法解析
2020/01/19 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
大学生第一学年自我鉴定2015
2014/09/28 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
php实例化对象的实例方法
2021/11/17 PHP
Nginx配置根据url参数重定向
2022/04/11 Servers