一、Lambda表达式基础

Lambda 的组成分为三部分

lambda arguments: expression

arguments为Lambda表达式的参数列表,多个参数使用逗号分隔;expression则是Lambda表达式的返回值表达式。

Lambda表达式的基本用法:

(lambda x, y: x + y)(1, 2)  # 输出3
(lambda x: x * x)(3) # 输出9
(lambda x: (x % 2 == 0))(4) # 输出True
(lambda x: (x % 2 == 0))(3) # 输出False

二、Lambda表达式应用场景

1. 函数作为参数

Lambda表达式可以作为函数的参数传递

result = map(lambda x: x * x, [1, 2, 3, 4, 5])
print(list(result)) # 输出[1, 4, 9, 16, 25]

2. 条件筛选

filter函数接收一个Lambda表达式和一个序列,它会返回序列中所有偶数组成的新序列。

result = filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5])
print(list(result)) # 输出[2, 4]

3. 函数式编程

Lambda表达式可以作为函数的返回值,用于构造更为复杂的计算过程

def add_function(n):
return lambda x: x + n add_3 = add_function(3)
print(add_3(4)) # 输出7

三、Lambda表达式和map、filter、reduce的结合

1. Lambda表达式和map的结合

map函数和Lambda表达式常常一起使用,可以对序列中的每个元素应用Lambda表达式,并返回结果序列。

result = map(lambda x: x * x, [1, 2, 3, 4, 5])
print(list(result)) # 输出[1, 4, 9, 16, 25]

2. Lambda表达式和filter的结合

filter函数和Lambda表达式组合使用可以实现对序列中符合特定条件的元素进行筛选。

result = filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5])
print(list(result)) # 输出[2, 4]

3. Lambda表达式和reduce的结合

reduce函数可以对序列中的元素依次累加,Lambda表达式可以定义累加过程。

from functools import reduce

result = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])
print(result) # 输出15

四、Lambda表达式在Python中的高级用法

1. 列表排序

列表的sort方法可以接收一个key参数,用于定义列表排序的规则。Lambda表达式可以作为参数传递给key,定义更复杂的列表排序规则。

fruits = ["apple", "orange", "banana", "lemon"]
fruits.sort(key=lambda x: len(x))
print(fruits) # 输出['apple', 'lemon', 'banana', 'orange']

2. 列表切片

Lambda表达式可以用来指定切片的起始位置和结束位置。

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
result = nums[lambda x: 2:lambda x: 5]
print(result) # 输出[3, 4, 5]

3. 字典排序

在Python中,可以使用sorted函数对字典进行排序。Lambda表达式可以指定排序规则。

data = {"apple": 5, "orange": 3, "banana": 8, "lemon": 1}
sorted_data = sorted(data.items(), key=lambda x: x[1])
print(sorted_data) # 输出[('lemon', 1), ('orange', 3), ('apple', 5), ('banana', 8)]

Python Lambda 用法大全的更多相关文章

  1. python lambda 用法

    可以视lambda为一个简易的函数,它不需要return,形式简单 #冒号左边是变量 #冒号右边是返回值 例: >>> def f (x): return x**2 ... > ...

  2. python之pandas用法大全

    python之pandas用法大全 更新时间:2018年03月13日 15:02:28 投稿:wdc 我要评论 本文讲解了python的pandas基本用法,大家可以参考下 一.生成数据表1.首先导入 ...

  3. Python Lambda 的简单用法

    下面代码简单举例介绍以下 lambda的用法. from functools import reduce #1 python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而de ...

  4. python lambda表达式简单用法【转】

    python lambda表达式简单用法 1.lambda是什么? 看个例子: g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>& ...

  5. python学习三十三天函数匿名函数lambda用法

    python函数匿名函数lambda用法,是在多行语句转换一行语句,有点像三元运算符,只可以表示一些简单运算的,lambda做一些复杂的运算不太可能.分别对比普通函数和匿名函数的区别 1,普通的函数用 ...

  6. Python lambda 表达式有何用处,如何使用?

    在看Python教程的时候,被 lambda 的解释给难住了,之前没有这么用过. 在<简明Python教程>上的解释: [摘录如下:] lambda语句被用来创建新的函数对象,并且在运行时 ...

  7. Python高级用法总结

    Python很棒,它有很多高级用法值得细细思索,学习使用.本文将根据日常使用,总结介绍Python的一组高级特性,包括:列表推导式.迭代器和生成器.装饰器. 列表推导(list comprehensi ...

  8. Python3 pandas用法大全

    Python3 pandas用法大全 一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as ...

  9. Python高级用法

    Python高级用法 三元表达式 x = 10 y = 20 print(x if x > y else y) x = 100 y = 20 print(x if x > y else y ...

  10. MVC5 + EF6 + Bootstrap3 (9) HtmlHelper用法大全(下)

    文章来源:Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-httphelper-part2.html 上一节 ...

随机推荐

  1. 防火墙(iptables与firewalld)

    防火墙 iptables 疏通和堵 进行路由选择前处理的数据包:prerouting 处理流入的数据包:input 处理流出的数据包:output 处理转发的数据包:forward 进行路由选择后处理 ...

  2. Centos7 安装部署 Kubernetes(k8s) 高可用集群

    目录 一.系统环境 二.前言 三.Kubernetes(k8s)高可用简介 四.配置机器基本环境 五.部署haproxy负载均衡器 六.部署etcd集群 七.部署Kubernetes(k8s) mas ...

  3. 反射(Java Reflection)

    Java反射机制概述 Reflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于ReflectionAPI取得任何类的内部信息,并能直接操作任意对象的内部属性及方法. ...

  4. Cloudflare 重定向配置

    最近把之前的一个网站域名换成另一个域名,想要添加一下重定向,避免流量流失(虽然本来就没流量).然后在 Cloudflare 配置时尝试多次都失败了,遇到各种 Your connection is no ...

  5. 【算法】用c#实现德州扑克卡牌游戏规则

    德州扑克是一种牌类游戏,可多人参与,它的玩法是,玩家每人发两张底牌,桌面依次发5张公共牌,玩家用自己的两张底牌和5张公共牌自由组合,按大小决定胜负. 使用c#完成功能Hand()以返回手牌类型和按重要 ...

  6. 【go笔记】使用WaitGroup控制协程退出

    前言 正常情况下,主协程一旦退出,其子协程也会全部中止并退出.为了阻塞主协程,可以使用time.Sleep(),也可以使用WaitGroup. 用法说明 // 导入sync import " ...

  7. 从Element日期组件源码中学到的两个工具方法

    最近翻到 ElementUI 的日期组件源码,看到一些处理日期的工具方法,挺有意思,平常没有注意到,特此记录下来. 获取当前日期的前一天,后一天 export const prevDate = fun ...

  8. Spring Boot通过企业邮箱发邮件被Gmail退回的问题解决方法

    这两天给我们开发的Chrome插件:Youtube中文配音增加了账户注册和登录功能,其中有一步是邮箱验证,所以这边会在Spring Boot后台给用户的邮箱发个验证信息.如果发邮件,之前的文章教程里就 ...

  9. C语言下载minGW地址

    https://sourceforge.net/projects/mingw-w64/files/ 下载红框内即可

  10. RK3568开发笔记(六):开发板烧写ubuntu固件(支持mipi屏镜像+支持hdmi屏镜像)

    前言   编译了uboot,kernel,buildroot后,可以单独输入固件,也可以整体打包成rootfs进行一次性输入,rootfs直接更新升级这个方式目前也是常用的.   烧写器软件:RKDe ...