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

 更新时间:2019年08月08日 11:23:04   作者:Johnny丶me  
这篇文章主要介绍了Python学习笔记之lambda表达式用法,结合实例形式详细分析了lambda表达式的概念、功能、原理、组成及相关使用技巧,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • Flask配置Cors跨域的实现

    Flask配置Cors跨域的实现

    这篇文章主要介绍了Flask配置Cors跨域的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python如何绘制登陆时的卫星云图(TBB)

    python如何绘制登陆时的卫星云图(TBB)

    这篇文章主要介绍了python如何绘制登陆时的卫星云图(TBB),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python next()和iter()函数原理解析

    python next()和iter()函数原理解析

    这篇文章主要介绍了python next()和iter()函数原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python入门教程(三十一)Python的Try和Except

    Python入门教程(三十一)Python的Try和Except

    这篇文章主要介绍了Python入门教程(三十一)Python的Try Except,当我们调用Python并发生错误或异常时,通常会停止并生成错误消息,
    可以使用try语句处理这些异常,需要的朋友可以参考下
    2023-05-05
  • python和opencv构建运动检测器的实现

    python和opencv构建运动检测器的实现

    这篇文章主要介绍了python和opencv构建运动检测器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python Celery动态添加定时任务生产实践指南

    Python Celery动态添加定时任务生产实践指南

    elery是一种异步任务队列,如果还不熟悉这个开源软件的请先看看官方文档,快速入门,下面这篇文章主要给大家介绍了关于Python Celery动态添加定时任务生产实践的相关资料,需要的朋友可以参考下
    2022-08-08
  • 手残删除python之后的补救方法

    手残删除python之后的补救方法

    这篇文章主要介绍了手残删除python之后的补救方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • python3中bytes和string之间的互相转换

    python3中bytes和string之间的互相转换

    这篇文章主要介绍了python3中bytes和string之间的互相转换,文中给出了详细的介绍和示例代码,相信对大家具有一定的参考价值,有需要的朋友们下面来一起学习学习吧。
    2017-02-02
  • 基于Python实现音频下载应用程序

    基于Python实现音频下载应用程序

    这篇文章主要介绍了如何使用wxPython、yt_dlp和tqdm库,开发一个简单直观的用户界面,并具备高效的音频下载功能,感兴趣的小伙伴可以学习一下
    2023-08-08
  • 详解tf.device()指定tensorflow运行的GPU或CPU设备实现

    详解tf.device()指定tensorflow运行的GPU或CPU设备实现

    这篇文章主要介绍了详解tf.device()指定tensorflow运行的GPU或CPU设备实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02

最新评论