Python学习笔记之lambda表达式用法详解


Posted in Python onAugust 08, 2019

本文实例讲述了Python学习笔记之lambda表达式用法。分享给大家供大家参考,具体如下:

Lambda 表达式

使用 Lambda 表达式创建匿名函数,即没有名称的函数。lambda 表达式非常适合快速创建在代码中以后不会用到的函数。

麻烦的写法:

def multiply(x, y):
  return x * y

使用Lambda之后:

double = lambda x, y: x * y

Lambda 函数的组成部分:

  • 关键字 lambda 表示这是一个 lambda 表达式。
  • lambda 之后是该匿名函数的一个或多个参数(用英文逗号分隔),然后是一个英文冒号 :。和函数相似,lambda 表达式中的参数名称是随意的。
  • 最后一部分是被评估并在该函数中返回的表达式,和你可能会在函数中看到的 return 语句很像。
  • 备注:鉴于这种结构,lambda 表达式不太适合复杂的函数,但是非常适合简短的函数。

Lambda 表达式[相关练习]

map() 是一个高阶内置函数,接受函数和可迭代对象作为输入,并返回一个将该函数应用到可迭代对象的每个元素的迭代器。下面的代码使用 map() 计算 numbers 中每个列表的均值,并创建列表 averages, 通过将 mean 函数替换为在 map() 的调用中定义的 lambda 表达式,重写这段代码,使代码更简练。

numbers = [
        [34, 63, 88, 71, 29],
        [90, 78, 51, 27, 45],
        [63, 37, 85, 46, 22],
        [51, 22, 34, 11, 18]
      ]
def mean(num_list):
  return sum(num_list) / len(num_list)
averages = list(map(mean, numbers))
print(averages)

使用lambda重写后:

numbers = [
        [34, 63, 88, 71, 29],
        [90, 78, 51, 27, 45],
        [63, 37, 85, 46, 22],
        [51, 22, 34, 11, 18]
      ]
averages = list(map(lambda x: sum(x) / len(x), numbers))
print(averages) # [57.0, 58.2, 50.6, 27.2]

filter() 是一个高阶内置函数,接受函数和可迭代对象作为输入,并返回一个由可迭代对象中的特定元素(该函数针对该元素会返回 True)组成的迭代器。下面的代码使用 filter() 从 cities 中获取长度少于 10 个字符的名称以创建列表 short_cities。通过将 is_short 函数替换为在 filter() 的调用中定义的 lambda 表达式,重写这段代码,使代码更简练。

cities = ["New York City", "Los Angeles", "Chicago", "Mountain View", "Denver", "Boston"]
def is_short(name):
  return len(name) < 10
short_cities = list(filter(is_short, cities))
print(short_cities)

使用lambda重写后:

cities = ["New York City", "Los Angeles", "Chicago", "Mountain View", "Denver", "Boston"]
short_cities = list(filter(lambda n: len(n) < 10, cities))
print(short_cities) # ['Chicago', 'Denver', 'Boston']

关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python类的动态修改的实例方法
Mar 24 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
Python3.遍历某文件夹提取特定文件名的实例
Apr 26 Python
python实现linux下抓包并存库功能
Jul 18 Python
python 文本单词提取和词频统计的实例
Dec 22 Python
python读写csv文件并增加行列的实例代码
Aug 01 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
Apr 29 Python
keras多显卡训练方式
Jun 10 Python
Django中Aggregation聚合的基本使用方法
Jul 09 Python
python如何操作mysql
Aug 17 Python
记一次Django响应超慢的解决过程
Sep 17 Python
基于tensorflow权重文件的解读
May 26 Python
python读取大文件越来越慢的原因与解决
Aug 08 #Python
Python实现Singleton模式的方式详解
Aug 08 #Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 #Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 #Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 #Python
pandas 选取行和列数据的方法详解
Aug 08 #Python
pandas 对日期类型数据的处理方法详解
Aug 08 #Python
You might like
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
smarty模板中拼接字符串的方法
2014/02/14 PHP
destoon常用的安全设置概述
2014/06/21 PHP
php实现的递归提成方案实例
2015/11/14 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
asp.net和php的区别点总结
2019/10/10 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
Backbone.js的Hello World程序实例
2015/06/19 Javascript
基于jquery实现左右按钮点击的图片切换效果
2021/01/27 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
jQuery事件用法详解
2016/10/06 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
Python常用知识点汇总
2016/05/08 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
2016/06/13 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
单链表反转python实现代码示例
2018/02/08 Python
基于Python List的赋值方法
2018/06/23 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
EJB的激活机制
2013/10/25 面试题
关于礼仪的演讲稿
2014/01/04 职场文书
卖房授权委托书样本
2014/10/05 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
2015年仓库工作总结
2015/04/09 职场文书
高三物理教学反思
2016/02/20 职场文书