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

一篇初学者入门Python匿名函数与Lambda表达式详细教程

首先要了解了如何定义和使用函数的参数,以及如何从一个函数返回值.这篇文章将深入介绍Python中的“匿名函数”和“Lambda表达式”,这两个概念在实际编程中非常有用

如果你对Python感兴趣的话,可以试试我整理的这一份全套的Python学习资料,【点击这里】免费领取

什么是匿名函数

在Python中,普通函数定义用def语句,而匿名函数是没有名称的函数.匿名函数的语法非常简单,主要使用关键字lambda来定义.它的基本结构如下:

lambda 参数: 表达式

这里,参数是一个或多个输入(可以是0个输入),而表达式是一个返回值.与普通函数不同,匿名函数只能包含一个表达式,不能包含复杂的语句.

示例

我们来看看一个简单的例子,展示如何使用匿名函数来完成加法操作:

# 定义一个匿名函数进行加法
add = lambda x, y: x + y# 测试匿名函数
result = add(5, 3)
print(result)  # 输出:8

在这个例子中,我们定义了一个add的匿名函数,接收两个参数xy,并返回它们的和.在调用时,我们可以使用add(5, 3)获得结果.

Lambda表达式的用途

Lambda表达式的主要应用场景之一是在高阶函数中,例如map()filter()sorted()等函数.这些函数允许我们将一个函数应用于一个序列(如列表、元组等),而Lambda表达式让我们能够快速定义简单的函数,而不需要提前定义.

使用map()

map()函数可以将一个函数应用于一个可迭代对象的每个元素,返回一个迭代器.我们可以用Lambda表达式来定义我们想要应用的函数.下面是一个示例:

# 使用map()和lambda将列表中的每个元素平方
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))print(squared)  # 输出:[1, 4, 9, 16, 25]

在这个例子中,map()函数接受了一个Lambda函数lambda x: x**2,将其应用于numbers列表中的每个元素.

使用filter()

filter()函数用于过滤序列中的元素,返回满足条件的元素.使用Lambda表达式,我们可以快速定义一个条件函数.例如,我们想从一个数字列表中筛选出偶数:

# 使用filter()和lambda筛选偶数
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))print(even_numbers)  # 输出:[2, 4, 6]

在这个例子中,filter()函数结合Lambda表达式用来筛选出所有的偶数.

使用sorted()

sorted()函数用于对可迭代对象进行排序.我们也可以使用Lambda表达式自定义排序规则.比如,假设我们有一个字典列表,想根据字典中的某个键进行排序:

# 字典列表
students = [{'name': 'Alice', 'score': 85},{'name': 'Bob', 'score': 95},{'name': 'Charlie', 'score': 80},
]# 按照分数排序
sorted_students = sorted(students, key=lambda student: student['score'])print(sorted_students)
# 输出:[{'name': 'Charlie', 'score': 80}, {'name': 'Alice', 'score': 85}, {'name': 'Bob', 'score': 95}]

在这个例子中,我们使用sorted()函数,结合Lambda表达式,按照学生的分数对字典列表进行排序.

总结

在本篇中,我们介绍了Python中的匿名函数和Lambda表达式的基本概念及其用法.Lambda表达式提供了一种简便的方法来定义小型函数,尤其在需要高阶函数时,使得代码更加简洁和易读.

文末福利

如果你对Python感兴趣的话,可以试试我整理的这一份全套的Python学习资料,【点击这里】免费领取!

包括:Python激活码+安装包、Python
web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习

也可以微信扫描下方二维码都可以免费获取【保证100%免费】。


http://www.mrgr.cn/news/3107.html

相关文章:

  • Zookeeper的在Ubuntu20.04上的集群部署
  • AI秘境-墨小黑奇遇记 (七):掉发的代价:神经网络与“秃头效应”
  • generator函数和async/await
  • GBase数据库学习笔记:技术要点梳理
  • 类加载的过程与触发时机
  • 基于springboot养老院管理系统pf
  • 短视频矩阵工具种类繁多,一招教你轻松做选择!
  • STM32第十二节(中级篇):串口通信(第二节)——串口固件库函数以及串口发送和接收代码讲解
  • Redis相关介绍
  • 新手/小白看/java 一些基础问题
  • 视频编辑与制作软件哪个好 视频编辑与制作软件哪个好学
  • 【JVM】类加载器、双亲委派、SPI(二)
  • LeetCode //C - 316. Remove Duplicate Letters
  • TCP/IP详解
  • 【问题解决3】【已解决】Cannot determine path to‘tools.jar‘libraryfor17
  • 使用 nginx 搭建代理服务器(正向代理 https 网站)指南
  • vue3+ts封装axios以及解决跨域问题
  • java对象创建的过程
  • 汽车IVI中控OS Linux driver开发实操(二十五):GPIO设备驱动的上手编写
  • 2025舜宇光学校招内推码!!!