Python技巧:实例剖析推导式、条件表达式及Lambda函数

文章标题:

Python技巧:实例解析推导式、条件表达式与Lambda函数

文章内容:

文章目录

      • 1. 推导式
      • 1.1 列表推导式
      • 1.2 集合推导式
      • 1.3 字典推导式
      • 2.4 生成器推导式
    • 2. 条件表达式
    • 3. Lambda函数

依照常规,先做声明:本文是本人学习过程中的心得,虽参考了他人的宝贵见解与成果,但内容或许存在不准确之处。若发现文中错误,还望批评指正,共同进步。

本文对Python编程中会用到的三个(高阶)小技巧进行总结,分别是推导式、条件表达式和Lambda函数,并通过实例阐释它们的使用方法。

这三者都是用于简化代码的工具,但可能会影响代码的可读性,在实际编码时要综合考量是否采用这三种方法。

1. 推导式

Python里的推导式是一种简洁且高效的语法结构,可从一个或多个可迭代对象高效创建新的列表、集合、字典或生成器对象。下面是四种主要的推导式类型:

1.1 列表推导式

列表推导式能快速生成列表,它可包含一个或多个循环以及条件表达式。

基本语法:

new_list = [expression for item in iterable if condition]

示例:

squares = [x**2 for x in range(10)]  # 创建包含前10个整数平方的列表
even_squares = [x**2 for x in range(10) if x % 2 == 0]  # 创建仅包含偶数平方的列表

打印输出:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[0, 4, 16, 36, 64]
1.2 集合推导式

集合推导式用于创建无重复元素的集合,语法和列表推导式类似。

基本语法:

new_set = {expression for item in iterable if condition}

示例:

unique_even_numbers = {x for x in [1, 2, 2, 3, 4, 4, 4, 5, 6] if x % 2 == 0}  # 创建仅包含唯一偶数的集合

打印输出:

{2, 4, 6}

注意:和列表推导式不同,集合推导式会自动过滤重复元素,例如下面的代码:

a = {x for x in [1,2,2,3,3,4,5,5]}

打印输出:

{1, 2, 3, 4, 5}
1.3 字典推导式

字典推导式用于创建字典,其中的键值对由某种表达式和迭代过程生成。

基本语法:

new_dict = {key_expression: value_expression for item in iterable if condition}

示例:

dict_even_square = {i:i**2 for i in range(10) if i%2==0}

打印输出:

{0: 0, 2: 4, 4: 16, 6: 36, 8: 64}
2.4 生成器推导式

生成器推导式看起来和列表推导式相似,但它不会直接创建列表,而是生成一个生成器对象,能逐个产生所需结果,节省内存。

基本语法:

generator = (expression for item in iterable if condition)

示例:

gen_squares = (x**2 for x in range(5))   # 创建一个生成器,按需生成前5个整数的平方
print(type(gen_squares))
for i in gen_squares:
    print(i)

输出:

<class 'generator'>
0
1
4
9
16

在这些推导式中,expression是针对item计算的新值,iterable是用于迭代的数据源,if condition是可选的筛选条件。通过这些结构,Python程序员能便捷地对数据进行转换、筛选和聚合,提升代码的简洁性和执行效率。

2. 条件表达式

Python中的条件表达式,又叫三元运算符,它能让我们在一行内依据某个条件决定返回值。条件表达式的语法结构如下:

value_if_true if condition else value_if_false

这里的condition是布尔表达式,若condition结果为True,整个条件表达式的值就是value_if_true;若conditionFalse,则值为value_if_false

示例:

age = 18
status = "成年" if age >= 18 else "未成年"

打印输出:

成年

此例中,若age大于等于18,status会被赋值为“成年”,否则为“未成年”。

条件表达式还能实现多个条件判断,例如:

age = 61
status = "未成年" if age < 18 else "成年" if age < 60 else "老年"

打印输出:

老年

条件表达式比传统if-else结构更紧凑,适用于简单情况,但复杂逻辑判断时,多行if-else语句可能更易读。

总之,条件表达式是推导式中用于逻辑选择的部分,可内嵌在推导式结构中,助力数据处理和代码简化。

3. Lambda函数

Python中的Lambda函数是简化的匿名函数定义方式,能让开发者在不显式定义函数名时快速编写小型单行函数。Lambda函数适合仅需一次性使用的简单功能场景,或作为其他高阶函数(如map()filter()reduce()等)的参数。

Lambda函数基本语法格式:

lambda arguments: expression
  • arguments:参数列表,可含一个或多个参数,多个参数用逗号,分隔。
  • expression:单一表达式,其计算结果为Lambda函数的返回值。Lambda函数不允许复杂逻辑,只能是单个表达式。

示例:
1. 创建计算两数之和的简单Lambda函数:

add = lambda x, y: x + y
print(add(3, 5))  # 输出:8
  1. 将Lambda函数用作map()函数的参数(类似列表推导式):
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared)  # 输出:[1, 4, 9, 16, 25]

借助Lambda函数,无需定义完整函数就能实现简单操作,增强代码简洁性和灵活性。复杂功能逻辑建议用常规def关键字定义的函数以提高可读性。

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/12948.html

(0)
LomuLomu
上一篇 2025 年 7 月 22 日
下一篇 2025 年 7 月 22 日

相关推荐

  • 最新IDEA破解工具教程|激活码+破解码+永久使用指南

    本教程适用于 IDEA、PyCharm、DataGrip、Goland 等,支持 Jetbrains 全家桶! 废话不多说,先上最新 IDEA 版本破解成功的截图,如下,可以看到已经成功破解到 2099 年辣,舒服! 接下来,我就将通过图文的方式,来详细讲解如何激活 IDEA 至 2099 年。当然这个激活方法,同样适用于之前的旧版本! 不管你是什么操作系统…

    IDEA破解教程 2025 年 9 月 20 日
    94100
  • pycharm破解图文教程附pycharm激活码使用

    PyCharm2025永久激活教程:破解补丁+激活码详细步骤【亲测有效】 声明:本教程涉及的PyCharm破解补丁与激活码均来源于网络收集,严禁商业用途,仅限个人学习研究。若涉及侵权问题,请联系本人删除。经济条件允许的话,强烈建议支持正版。PyCharm作为JetBrains旗下一款强大的开发工具,跨平台支持Windows、Mac及Linux系统。接下来将手…

    PyCharm激活码 2026 年 1 月 7 日
    4300
  • IntelliJ IDEA 2025.3 最新永久激活码合集下载

    本指南兼容IDEA、PyCharm、DataGrip、Goland等多种开发工具,全面支持JetBrains系列软件。话不多说,先来看看最新版IDEA破解成功的实况截图,如图所示,许可证有效期已延续至2099年,非常给力! 下面我将通过图文并茂的形式,手把手教大家如何将IDEA激活至2099年。需要说明的是,这套激活方案对早期旧版本同样有效!无论你使用哪种操…

    IDEA破解教程 2025 年 12 月 31 日
    4300
  • IntelliJ IDEA 最新激活与破解资源

    IntelliJ IDEA 2025破解教程:永久激活码+破解补丁下载指南 声明:本文所涉及的IntelliJ IDEA破解补丁及激活码均来源于网络收集,仅限个人学习研究使用,严禁商业用途。如条件允许,强烈建议支持正版!如有侵权问题,请联系作者删除相关内容。 IntelliJ IDEA作为JetBrains旗下功能强大的集成开发环境,广受开发者喜爱,支持Wi…

    IDEA破解教程 5天前
    3800
  • PyCharm激活码过期了怎么办?用这招重新激活!

    声明:以下激活补丁与序列号均源自互联网公开分享,仅供个人学习研究,禁止商业用途。若条件允许,请支持正版!官方正版低至 32 元/年:https://panghu.hicxy.com/shop/?id=18 先放一张成功激活 PyCharm 2025.2.1 的截图,有效期直接到 2099 年,爽到飞起! 下面用图文方式手把手带你完成最新版 PyCharm 的…

    PyCharm激活码 2025 年 9 月 9 日
    26000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信