Python 推导式详解:列表、字典与集合的简洁写法

云舒
云舒
发布时间:2026-10-15| 5人浏览过
原创

本文详细介绍 Python 中的三种推导式:列表、字典和集合推导式。通过具体代码示例,演示如何简化循环逻辑,实现数据转换、条件过滤及去重功能,帮助开发者写出更简洁高效的 Python 代码。

Python 提供了三种主要的推导式类型,用于简化序列数据的创建与处理。

  • 列表推导式
  • 字典推导式
  • 集合推导式

列表推导式

其核心语法结构为:

[表达式 for 变量 in 可迭代对象]

示例说明

目标是生成包含 0 到 16 平方值的列表,即 [0, 1, 4, 9, 16]。

在掌握推导式之前,通常需要通过显式循环来实现该功能。


li = []
for i in range(5):  # 循环5次取值
    res_i = i * i  # 进行每次取值的处理
    li.append(res_i)  # 将处理的值加入列表
print(li)  # 循环结束打印生成的列表

执行后的输出结果为:

[0, 1, 4, 9, 16]

虽然上述传统方法功能正常,但代码行数较多。使用列表推导式可以显著简化代码,同时提升可读性。


new_list = [i*i for i in range(5)]
print(new_list)

使用推导式后的输出结果为:

[0, 1, 4, 9, 16]

若需根据特定条件筛选元素,可在推导式末尾添加 if 条件判断。

[表达式 for 变量 in 可迭代对象 if 条件]

示例说明

定义列表 li = [2, 7, 4, 8, -12, -15, 3, -4, -7]。

任务是将列表中所有小于 0 的元素进行平方运算,并将结果存入新列表。


li = [2, 7, 4, 8, -12, -9, 3, -4, -7]
new_li = [i ** 2 for i in li if i < 0]
print(new_li)

执行后的输出结果为:

[144, 81, 16, 49]

嵌套循环推导式

示例说明

目标生成列表 li,内容为字符串组合。

['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']


li = [i + j for i in '123' for j in 'abc']
print(li)

执行后的输出结果为:

['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']

字典推导式

其基本语法格式为:

{键表达式: 值表达式 for 变量 in 可迭代对象}

示例说明

构建一个字典对象。

字典的键(key)取自列表 li 中元素的索引位置。

字典的值(value)对应列表中的实际元素。

li = ["age", "name", "gender"]。


li = ["age", "name", "gender"]
dic = {li.index(i): i for i in li}
print(dic)

执行后的输出结果为:

{0: 'age', 1: 'name', 2: 'gender'}

此外,字典推导式还可用于快速交换字典的键和值。


dic1 = {0: "0", 1: "1", 2: "2"}
dic2 = {v: k for k, v in dic1.items()}
print(dic2)

执行后的输出结果为:

{'0': 0, '1': 1, '2': 2}

集合推导式

集合的一个显著特性是自动去除重复元素。

其基本语法格式为:

{表达式 for 变量 in 可迭代集合}

示例说明

随机生成 10 个 1 至 100 之间的整数,并利用集合特性自动去重。


import random
s1 = {random.randint(1,100) for i in range(10)}
print(s1)

执行后的输出结果为:

{89, 37, 73, 42, 82, 87, 56, 25, 29}

以上即为 Python 中三种推导式的介绍及其具体用法。

本文介绍了 Python 特有语法推导式的基本使用,更多相关内容可参考本站其他文章或继续浏览后续内容,感谢支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。