当前位置: 首页 > article >正文

python lambda函数用法

在Python中,lambda函数是一种用于创建匿名函数的简便方式。它允许你快速定义一个简单的函数,而不需要使用传统的def语句lambda函数通常用于一次性的操作或作为参数传递给其他函数。

lambda函数的语法:

lambda 参数1, 参数2, ... : 表达式
  • lambda是关键字。
  • 参数是函数输入的参数(可以有多个)。
  • 表达式是返回的值,这个表达式的值将作为函数的返回值。

示例:

 1. 基本示例:

f = lambda x: x + 2
print(f(3))  # 输出 5

这里,lambda x: x + 2定义了一个匿名函数,它接受一个参数x,并返回x + 2的值。

2. 多个参数的示例: 

add = lambda x, y: x + y
print(add(3, 5))  # 输出 8

3. 用在sorted()函数中:

lambda函数常用作排序的关键字参数。假设你有一个元组列表,并希望按元组的第二个元素排序:

tuples = [(1, 2), (3, 1), (5, 4)]
sorted_tuples = sorted(tuples, key=lambda x: x[1])
print(sorted_tuples)  # 输出 [(3, 1), (1, 2), (5, 4)]

4. 在map()函数中的使用:

map()函数可以将一个函数应用于可迭代对象的每个元素,通常配合lambda使用。 

map()函数接受一个函数和一个可迭代对象作为参数,对可迭代对象中的每个元素应用这个函数,返回一个新的迭代器。

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

5. 在filter()函数中的使用:

filter()函数返回一个由符合条件的元素组成的迭代器lambda可以用于指定条件

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

6. 将lambda函数作为字典的value,用来处理多个分支,避免书写过多if else语句

# 按照用户等级给用户加分

# if else写法
def user_logging(user):
    if user.level == 1:
        user.credits += 2
    elif user.level == 2:
        user.credits += 5
    elif user.level == 3:
        user.credits += 10
    elif user.level == 4:
        user.credits += 20


# 使用lambda函数写法
def user_logging(user):
    level_credit_map = {
        1: lambda x: x+2,
        2: lambda x: x+5,
        3: lambda x: x+10,
        4: lambda x: x+20,
    }
    user.credits = level_credit_map[user.level](user.credits)

 

注意事项:

  • lambda函数只能包含一个表达式,不能有多个语句。
  • 它通常用于简单的函数操作,复杂的逻辑还是应该使用常规的def函数。

通过lambda函数,你可以在不定义正式函数的情况下执行简单的操作,非常适合需要短小函数的场景。


http://www.kler.cn/a/457247.html

相关文章:

  • Windows安装了pnpm后无法在Vscode中使用
  • 【发票提取明细+发票号改名】批量提取PDF电子发票明细导出Excel表格并改名技术难点,批量PDF多区域内容识别提取明细并用内容改名的小结
  • spring boot 异步线程池的使用
  • Three.js教程004:坐标辅助器与轨道控制器
  • [2025] 如何在 Windows 计算机上轻松越狱 IOS 设备
  • Type c系列接口驱动电路·内置供电驱动电路使用USB2.0驱动电路!!!
  • Android `android.graphics.drawable` 包深度解析:架构与设计模式
  • zentao ubuntu上安装
  • EMNLP'24 最佳论文解读 | 大语言模型的预训练数据检测:基于散度的校准方法
  • 探索鸿蒙的蓝牙A2DP与访问API:从学习到实现的开发之旅
  • 从零开始采用命令行创建uniapp vue3 ts springboot项目
  • 《PHP Switch》
  • DeepSeek-VL2部署指南
  • Linux总结之CentOS Stream 9安装mysql8.0实操安装成功记录
  • Qt For Android之环境搭建(Qt 5.12.11 Qt下载SDK的处理方案)
  • 药片缺陷检测数据集,8625张图片,使用YOLO,PASICAL VOC XML,COCO JSON格式标注,可识别药品是否有缺陷,是否完整
  • USB免驱全协议IC卡读写器 QT程序开发
  • 【服务器主板】定制化:基于Intel至强平台的全新解决方案
  • 手机h5加桌面图标
  • 深度学习笔记(10)——卷积神经网络
  • 全面了解 SQL Server:功能、优势与最佳实践
  • Stream API 的设计融合了多个经典设计模式
  • vulnhub-Raven2靶机的测试报告
  • MFC小知识:CEdit::GetSel函数的使用
  • 智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之3 帮助AI聊天工具中提问者正确描述问题
  • 【HarmonyOS】如何读取Raw下的JSON文件内容