返回顶部
首页 > 资讯 > 后端开发 > Python >python数据操作之lambda表达式详情
  • 817
分享到

python数据操作之lambda表达式详情

2024-04-02 19:04:59 817人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1 前言2 lambda 的特性3 lambda 的一些用法3.1 map 函数3.2 reduce 函数3.3 sorted 函数3.4 filter 函数4 总结1 前言 在

1 前言

在 Java 和 js 中,lambda箭头函数是十分常见的操作,这种表达方式在使用时非常的简便。在python的语法中也有应用场景,lambdaPython预留的关键字,带有该关键字的都视为lambda,

其表现形式如下:

# lambda 是表达式, arg 是用户输入参数 expression 是函数表达式
lambda [arg1 [,arg2,.....argn]]:expression

2 lambda 的特性

python 中 lambda 表达式的特性如下所示:

  • 表达式是匿名的,lambda 只是一个一个表达式,类似于但是没有名字。
  • 表达式有输入和输出,输入是 arg 的参数,输出是表达式计算的结果。
  • 具有命名空间,只能在命名空间之内获取和操作参数变量。

常见的表达式如下所示:

lambda x, y: x + y			# 函数输入是x和y,输出是 x + y
lambda *args: sum(args)		# 输入是任意个数参数,输出是多个参数的和,输入参数必须是数字
lambda **kwargs: 2			# 输入是任意键值对参数,输出结果为固定值

3 lambda 的一些用法

3.1 map 函数

map 函数会根据提供的函数对可迭代参数进行逐个调用,并返回一个可迭代对象结果,其语法和使用方式如下所示:

# function 代表为函数,iterable 代表一个可迭代对象,也可以传入多个对象
map(function, iterable, ...)
# 只有一个可迭代参数情况
def cal_num(x):
    return x ** 2 + 2 * x - 3
# 准备的数据
read_list = [2, 3, 4]
# 因为map 的结果是一个可迭代对象,所以转换为 list 对象打印结果
re_list = list(map(cal_num, read_list))
#计算的结果 [5, 12, 21]
print(re_list)

# 多个可迭代参数情况,逐个计算和
def cal_add_num(x, y):
    return x  + y
# 准备的数据
read_list = [2, 3, 4]
re_list = list(map(cal_add_num, read_list, read_list))
# 计算结果 [4, 6, 8]
print(re_list)

# 关于多个迭代的操作,也可以采用 zip 将多个可迭代对象进行处理,组成元组对象,进行循环计算处理。
result_list = []
for k1, k2 in zip(read_list,read_list):
    result_list.append(k1 + k2)

3.2 reduce 函数

reduce 函数会对参数列表中的元素进行累积计算,通常的做法就是对一列数组求和,前篇讲述的 java Stream 关于 reduce 的操作和本例是一样的,其中的 lambda 可以看成是数列的推导式:

# function 代表为函数,iterable 代表一个可迭代对象,initializer 指定起始值
reduce(function, iterable[, initializer])
# 计算数组之和,lambda 写法,起始值为 10, 计算结果为 25
res = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5], 10)

这里需要说明的是,在 python3 中 reduce 已经从全局命名空间中移除,被放在了 functools 模块中,如果需要使用,则需要进行引入from functools import reduce

3.3 sorted 函数

sorted 函数,顾名思义就是对可迭代对象进行排序操作,其语法格式和用法如下所示:

# iterable 为可迭代对象 cmp 为比较函数 排序字段和排序顺序
sorted(iterable[, cmp[, key[, reverse]]])
# 1、简单排序
a = [5,7,6,3,4,1,2]
# 使用sorted,保留原列表,不改变列表a的值
# 排序结果为 [1, 2, 3, 4, 5, 6, 7]
b = sorted(a)
# 2、使用 lambda 指定排序函数方式排序
# 待排序对象
x_list = [('b',2),('a',1),('c',3),('d',4)]
# 排序结果:[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
y_list = sorted(x_list, cmp=lambda x,y:cmp(x[1],y[1]))
# 3、利用参数 key 排序,依然使用 lambda 指定元祖的第一个数据
# 计算结果:[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
z_list = sorted(x_list, key=lambda x:x[1])
# 4、指定排序顺序
user_list = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
# 排序结果 [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
re_list = sorted(user_list, key=lambda s: s[2], reverse=True)

3.4 filter 函数

filter 函数相对来说就比较简单了,主要就是过滤操作,过滤掉不符合表达式的数据,得到最终的结果。

# function 为过滤函数,返回结果为 true 或者 false, iterable 为可迭代对象
filter(function, iterable)
# 判断是否为奇数
def is_odd(n):
	return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4])
print(list(newlist))

4 总结

文章主要讲述了 python 的 lambda 的相关操作,主要就是 lambda 表达式与 map、filter、 sorted、 reduce 函数的配合使用。

到此这篇关于python数据操作之 lambda表达式详情的文章就介绍到这了,更多相关python lambda表达式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python数据操作之lambda表达式详情

本文链接: https://lsjlt.com/news/117663.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python数据操作之lambda表达式详情
    目录1 前言2 lambda 的特性3 lambda 的一些用法3.1 map 函数3.2 reduce 函数3.3 sorted 函数3.4 filter 函数4 总结1 前言 在...
    99+
    2024-04-02
  • Python函数式编程之lambda表达
    一:匿名函数的定义 lambda parameter_list: expression二:三元表达式 条件为真时返回的结果 if 条件判断 else 条件为假的时候返回的结果三:map map(func(arg1, ar...
    99+
    2023-01-30
    函数 Python lambda
  • JDK中Lambda表达式的操作
    这篇文章主要介绍“JDK中Lambda表达式的操作”,在日常操作中,相信很多人在JDK中Lambda表达式的操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JDK中Lambda表达式的操作”的疑惑有所帮助!...
    99+
    2023-06-15
  • 【Python】python map()函数和lambda表达式
    python map(fun,[arg]+)函数最少有两个参数,第一参数为一个函数名,第二个参数是对应的这个函数的参数(一般为一个或多个list)>>>def fun(x):...  &nbs...
    99+
    2023-06-02
  • python中的lambda表达式用法详解
    本文实例讲述了python中的lambda表达式用法。分享给大家供大家参考,具体如下: 这里来为大家介绍一下lambda函数。 lambda 函数是一种快速定义单行的最小函数,是从 Lisp 借用来的,可以...
    99+
    2022-06-04
    表达式 详解 python
  • 浅谈Java中Lambda表达式的相关操作
    为什么要使用Lambda? 可以对一个接口进行非常简洁的实现。 Lambda对接口的要求? 接口中定义的抽象方法有且只有一个才可以。 传统实现一个接口需要这样做: 方法一: ...
    99+
    2024-04-02
  • python 操作 mongodb 数据库详情
    目录一、安装二、连接数据库三、创建数据库四、所有数据库五、创建集合六、插入数据七、查询数据八、高级查询九、count统计十、修改数据十一、删除数据十二、数据排序一、安装 pip in...
    99+
    2024-04-02
  • Python 操作SQLite数据库详情
    目录一、简单操作SQLite数据库1、简单的插入语句的使用2、简单的查询语句的使用二、更新数据与删除三、实现用户名密码验证四、SQLite检索时间记录五、SQLite提取数据并绘图 ...
    99+
    2024-04-02
  • Java学习之Lambda表达式的使用详解
    目录Lamda表达式函数式接口Lambda表达式的推导函数式接口的不同类型Lambda表达式与函数式接口的简单应用Lambda表达式的优缺点Lamda表达式 λ希腊字母...
    99+
    2022-12-26
    Java Lambda表达式用法 Java Lambda表达式 Java Lambda
  • C++学习之Lambda表达式的用法详解
    目录简介捕获原理Lambda回调简介 Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中...
    99+
    2024-04-02
  • Java中Lambda表达式的进化之路详解
    目录Lambda表达式的进化之路为什么要使用Lambda表达式Lambda表达式的注意点下面是Lambda表达式的实现过程1.最开始使用的是定义外部实现类来完成接口2.开始使用静态内...
    99+
    2024-04-02
  • 详解Java函数式编程和lambda表达式
    目录为什么要使用函数式编程JDK8接口新特性函数接口方法引用类型推断变量引用级联表达式和柯里化为什么要使用函数式编程 函数式编程更多时候是一种编程的思维方式,是种方法论。函数式与命令...
    99+
    2024-04-02
  • C++ 函数 Lambda 表达式作为参数传递
    c++++ 的 lambda 表达式可作为参数传递给其他函数,语法为:auto lambda_function = [](parameter_list) -> return_typ...
    99+
    2024-04-20
    函数参数 c++
  • 详解Kotlin 高阶函数 与 Lambda 表达式
    详解Kotlin 高阶函数 与 Lambda 表达式高阶函数(higher-order function)是一种特殊的函数, 它接受函数作为参数, 或者返回一个函数. 这种函数的一个很好的例子就是 lock() 函数, 它的参数是一个锁对象...
    99+
    2023-05-31
    kotlin 高阶函数 lambda
  • MySQL数据库操作DQL正则表达式
    前言: 正则表达式(regular expression)描述了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用...
    99+
    2022-07-11
    MySQL数据库操作DQL MySQL正则表达式
  • C# 本地函数与 Lambda 表达式详细介绍
    目录1、C# 本地函数与 Lambda 表达式2、Lambda 表达式3、本地函数4、那么,局部函数的目的是什么?1、C# 本地函数与 Lambda 表达式 C# 局部函数通常被视为...
    99+
    2024-04-02
  • Kotlin高阶函数与Lambda表达式示例详解
    目录正文1.函数类型2.高阶函数3.系统标准高阶函数4.Lambda表达式正文 Kotlin中函数都是头等的,这意味着它可以存储在变量与数据结构中、作为参数传递给其他高阶函数以及从...
    99+
    2022-12-08
    Kotlin 高阶函数Lambda Kotlin Lambda
  • C++11 lambda(匿名函数)表达式详细介绍
    目录前言概念及基本用法捕获变量lambda表达式类型声明式的编程风格总结前言 Lambda(匿名函数)表达式是C++11最重要的特性之一,lambda来源于函数式编程的概念,也是现代...
    99+
    2024-04-02
  • Python Lambda表达式实战案例:玩转函数式编程
    Lambda表达式是Python中的一种强大的工具,它允许您定义匿名函数,而无需使用def关键字。匿名函数是指没有名称的函数,通常用于在需要函数的地方快速定义一个简单的函数。Lambda表达式的语法非常简单,由lambda关键字后跟一个...
    99+
    2024-02-23
    Python Lambda表达式 匿名函数 函数式编程 代码优化
  • MySQL数据库操作DQL正则表达式的方法
    本文小编为大家详细介绍“MySQL数据库操作DQL正则表达式的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL数据库操作DQL正则表达式的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言:正则...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作