Python Lambda 用法大全
一、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 用法大全的更多相关文章
- python lambda 用法
可以视lambda为一个简易的函数,它不需要return,形式简单 #冒号左边是变量 #冒号右边是返回值 例: >>> def f (x): return x**2 ... > ...
- python之pandas用法大全
python之pandas用法大全 更新时间:2018年03月13日 15:02:28 投稿:wdc 我要评论 本文讲解了python的pandas基本用法,大家可以参考下 一.生成数据表1.首先导入 ...
- Python Lambda 的简单用法
下面代码简单举例介绍以下 lambda的用法. from functools import reduce #1 python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而de ...
- python lambda表达式简单用法【转】
python lambda表达式简单用法 1.lambda是什么? 看个例子: g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>& ...
- python学习三十三天函数匿名函数lambda用法
python函数匿名函数lambda用法,是在多行语句转换一行语句,有点像三元运算符,只可以表示一些简单运算的,lambda做一些复杂的运算不太可能.分别对比普通函数和匿名函数的区别 1,普通的函数用 ...
- Python lambda 表达式有何用处,如何使用?
在看Python教程的时候,被 lambda 的解释给难住了,之前没有这么用过. 在<简明Python教程>上的解释: [摘录如下:] lambda语句被用来创建新的函数对象,并且在运行时 ...
- Python高级用法总结
Python很棒,它有很多高级用法值得细细思索,学习使用.本文将根据日常使用,总结介绍Python的一组高级特性,包括:列表推导式.迭代器和生成器.装饰器. 列表推导(list comprehensi ...
- Python3 pandas用法大全
Python3 pandas用法大全 一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as ...
- Python高级用法
Python高级用法 三元表达式 x = 10 y = 20 print(x if x > y else y) x = 100 y = 20 print(x if x > y else y ...
- MVC5 + EF6 + Bootstrap3 (9) HtmlHelper用法大全(下)
文章来源:Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-httphelper-part2.html 上一节 ...
随机推荐
- 【Nginx】Nginx访问静态资源
Nginx访问静态资源 即通过IP:端口/文件名 访问文件实现. 修改Nginx配置 location / { # root html; # index index.html index.htm; a ...
- C语言指针--二级指针
文章目录 前言 一.什么是二级指针 二.二级指针的使用 1.二级指针的定义 2.二级指针的赋值 3.二级指针的使用 3.1 用二级指针输出一级指针的地址 3.2 用二级指针输出一级指针中的内容 3.3 ...
- C语言基础-结构体基础
文章目录 前言 1.结构体的创建 1.1 第一种方法 1.2 第二种方法 1.3 全局结构体和局部结构体的声明 2.结构体的使用 2.1 局部结构体的声明 & 初始化 2.1.1 指针方法 2 ...
- Debian12配置NTP时间同步
环境 查看系统版本:lsb_release -a 配置NTP时间同步 下面的配置需要用到管理员权限,可以使用su切换到管理员权限. 查看/修正 时区 查看系统时区:timedatectl 如果时区不是 ...
- 长连接:chatgpt流式响应背后的逻辑
一.前言: 提起长连接,我们并不陌生,最常见的长连接非websocket莫属了.即使没有在项目中实际用过,至少也应该有所接触.长连接指在一次网络通信中,客户端与服务器之间建立一条持久的连接,可以在多次 ...
- 层叠样式表(CSS)2(环境:MyEclipse 10)
二.选择器 注:在head里面写选择器的内容.环境一直不变,所有HTML和css都是这个MyEclipse 10 1.基本选择器(每个选择器新建一个HTML网页测试学习) 元素选择器:按节点名称匹配元 ...
- vue结合cesium,配置,插件vue-cli-plugin-cesium
https://www.npmjs.com/package/vue-cli-plugin-cesium
- openlayers动态添加自定义div图层 具有筛选功能 和浮窗
https://blog.csdn.net/weixin_43863505/article/details/119493664
- 查看Linux系统下CPU、内存、硬盘等信息
做个记录,方便日后查看使用. 1. 查看CPU 1.1 查看CPU个数 [root@qy-ggyf-zyl-31 ~]# cat /proc/cpuinfo | grep "physical ...
- Spring Boot 启动流程追踪(第一篇)
1.初始化 SpringApplication public SpringApplication(ResourceLoader resourceLoader, Class<?>... pr ...