首页 > 其他分享 >Lambda表达式

Lambda表达式

时间:2024-08-02 23:54:13浏览次数:19  
标签:name age numbers print Lambda 表达式 lambda

Python 使用 lambda 来创建匿名函数

lambda 函数是一种小型、匿名的、内联函数,它可以具有任意数量的参数,但只能有一个表达式。用于编写简单函数、通过赋值给变量或作为参数  

带参与不带参

  • 不带参数
  • 带参数
  • 带默认参数
  • 带不定长参数

 

# lambda表达式
func1 = lambda: 10
print(func1())  # 10

# 带参数的lambda表达式
func2 = lambda a, b: a + b
print(func2(10, 20))    # 30

# 带默认参数的lambda表达式
func3 = lambda a, b, c=666: a + b + c
print(func3(10, 20))    # 696
print(func3(10, 20, 30))    # 60

# 带不定长参数的lambda表达式
func4 = lambda *args: args
func5 = lambda **kwargs: kwargs
print(func4(10, 20, 30, 40, 50))    # (10, 20, 30, 40, 50)
print(func5(name='ldk', age=24, citizenship='中国'))  # {'name': 'ldk', 'age': 24, 'citizenship': '中国'}

与其他关键字或函数结合

  •  带三目运算符
  • sort()
  • map()
  • filter()
  • reduce()
# 带三目运算符lambda表达式
func1 = lambda a, b: a if a > b else b
print(func1(10, 20))    # 20

employees = [
    {'name': 'Alice', 'age': 28},
    {'name': 'Bob', 'age': 25},
    {'name': 'Charlie', 'age': 30},
    {'name': 'David', 'age': 22}
]
# 使用sort()函数配合lambda表达式进行排序
employees.sort(key=lambda x: x['name'], reverse=True)
print("按name降序排列:", employees)   # 按name降序排列: [{'name': 'David', 'age': 22}, {'name': 'Charlie', 'age': 30}, {'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 28}]

numbers = [1, 2, 3, 4, 5]
# 使用map()函数和lambda表达式对列表numbers中的每个元素进行平方操作,再使用list()转换为列表
squared = list(map(lambda x: x**2, numbers))
print(squared)  # [1, 4, 9, 16, 25]

# 使用filter()函数和lambda表达式对列表numbers中的每个元素进行筛选偶数操作,再使用list()转换为列表
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)     # [2, 4]

# 使用reduce()函数和lambda表达式对列表numbers中的所有元素进行累乘操作
product = reduce(lambda x, y: x * y, numbers)
print(product)  # 120

标签:name,age,numbers,print,Lambda,表达式,lambda
From: https://blog.csdn.net/weixin_74254879/article/details/140882042

相关文章

  • Lambda表达式
    Lambda有很多叫法:Lambda表达式、Lambda函数、匿名函数。Lambda是一种定义匿名函数对象的简洁方式,可以接受参数、存储状态、返回值以及跨越多行。语法定义:【捕获列表】【参数列表】【可变规则】【返回类型】【函数体】[capturelist][parameters][mutablethrow()]->r......
  • 中缀表达式
    中缀表达式一、基本概念1、中缀表达式:操作符以中缀形式位于运算数中间(如:3+2),是我们日常通用的算术和逻辑公式表示方法。2、后缀表达式:又称逆波兰式,操作符以后缀形式位于两个运算数后(如:3+2的后缀表达形式就是32+)。3、前缀表达式:又称波兰式,操作符以前缀形式位于两个运算数前(如:3+2的......
  • 中缀表达式
    中缀表达式一、基本概念1、中缀表达式:操作符以中缀形式位于运算数中间(如:3+2),是我们日常通用的算术和逻辑公式表示方法。2、后缀表达式:又称逆波兰式,操作符以后缀形式位于两个运算数后(如:3+2的后缀表达形式就是32+)。3、前缀表达式:又称波兰式,操作符以前缀形式位于两个运算数前(如:3+2的......
  • 中缀表达式
    一、基本概念1、中缀表达式:操作符以中缀形式位于运算数中间(如:3+2),是我们日常通用的算术和逻辑公式表示方法。2、后缀表达式:又称逆波兰式,操作符以后缀形式位于两个运算数后(如:3+2的后缀表达形式就是32+)。3、前缀表达式:又称波兰式,操作符以前缀形式位于两个运算数前(如:3+2的前缀表达形......
  • 中缀表达式
    中缀表达式一、基本概念1、中缀表达式:操作符以中缀形式位于运算数中间(如:3+2),是我们日常通用的算术和逻辑公式表示方法。2、后缀表达式:又称逆波兰式,操作符以后缀形式位于两个运算数后(如:3+2的后缀表达形式就是32+)。3、前缀表达式:又称波兰式,操作符以前缀形式位于两个运算数前(如:3+2的......
  • PHP8中match表达式的强劲功能
    hp8中match表达式的强劲功能,让你写代码更加灵活PHP8是PHP语言的最新版本,带来了很多新功能和优化,其中一个最令人振奋的功能是新的match表达式。这个表达式与switch语句类似,但比switch语句更加强大和灵活,使开发人员写代码更加方便,而且代码清晰易读。在本文中,我们将深入研究match表......
  • AcWing3302. 表达式求值
    代码解释while(j<str.size()&&isdigit(str[j])){x=x*10+str[j++]-'0';}把字符串中里面连续的数字转化为int类型变量,比如输入996/332+8,正常的挨个字符扫描只能扫到’9’,‘9’,‘6’,但是按照上面代码的算法是重新开了一个循......
  • 正则表达式:有没有一种方法可以提取单引号之间的所有子字符串,而不提取撇号之间的子字符
    基本上,我有一个包含英语语句的数据集。有些语句包含前导/尾随标点符号,所以我想清理和标准化它们。标准化的标准是删除所有前导/尾随标点符号,语句的第一个字符大写,并且语句以句点结尾。我有一个函数可以执行此操作并将其应用于数据集中的每一行。如果有帮助的话,这里是一个代码......
  • 数仓入门:数据分析模型、数仓建模、离线实时数仓、Lambda、Kappa、湖仓一体
    往期推荐大数据HBase图文简介-CSDN博客数仓分层ODS、DWD、DWM、DWS、DIM、DM、ADS-CSDN博客数仓常见名词解析和名词之间的关系-CSDN博客目录0.前言0.1浅谈维度建模0.2数据分析模型1.何为数据仓库1.1 为什么不直接用业务平台的数据而要建设数仓?1.2 数据仓库特......
  • 我可以运行创建两个表达式和两列,其中第二列引用同一行中的第一列吗?
    我有一个来自FREDAPI的数据库:self.yielddiff_lfshape:(9,5)┌────────────┬────────────────────────────┬──────────┬──────────┬─────────────┐│statistic┆Date......