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的randrange()方法使用教程
May 15 Python
Python简单实现enum功能的方法
Apr 25 Python
Python使用遗传算法解决最大流问题
Jan 29 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
解读python logging模块的使用方法
Apr 17 Python
解决python报错MemoryError的问题
Jun 26 Python
使用Python开发SQLite代理服务器的方法
Dec 07 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
Oct 09 Python
pytorch 状态字典:state_dict使用详解
Jan 17 Python
python删除某个目录文件夹的方法
May 26 Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 Python
PyTorch中的torch.cat简单介绍
Mar 17 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
swfupload 多文件上传实现代码
2008/08/27 PHP
中英文字符串翻转函数
2008/12/09 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
2014/04/08 Python
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
python实现求特征选择的信息增益
2018/12/18 Python
python编写简单端口扫描器
2019/09/04 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
基于Python爬取素材网站音频文件
2020/10/21 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
八年级音乐教学反思
2014/01/09 职场文书
马智宇结婚主持词
2014/04/01 职场文书
关于读书的演讲稿
2014/05/07 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
旅游活动总结
2014/08/27 职场文书
机关班子查摆问题及整改措施
2014/10/28 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
优秀团队申报材料
2014/12/26 职场文书
小学生差生评语
2014/12/29 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
闪闪的红星观后感
2015/06/08 职场文书
django如何自定义manage.py管理命令
2021/04/27 Python