Python列表、字典与集合推导式详解及代码示例

山海之间
山海之间
发布时间:2026-10-14| 4人浏览过
原创

本文详细介绍Python中列表、字典和集合推导式的语法结构与应用场景。通过对比普通循环与推导式的写法,展示如何高效生成数据列表、提取特定类型元素以及交换字典键值。同时解析推导式的嵌套执行顺序,帮助开发者写出更简洁高效的Python代码。

Python推导式基础语法

列表推导式的基本语法格式为:[结果表达式 for 变量 in 可迭代对象 if 筛选条件]。

字典推导式的语法格式为:{结果表达式 for 变量 in 可迭代对象 if 筛选条件},其中结果部分需返回 key:value 形式的键值对。

集合推导式的语法格式为:{结果表达式 for 变量 in 可迭代对象 if 筛选条件},其结果作为集合的 key,且集合具备自动去重的功能。

列表推导式的执行顺序遵循嵌套关系:左侧第二个语句(for子句)代表最外层循环,依次向右层级递减,左侧第一条语句(结果表达式)位于最内层。

列表推导式实战:生成特定数字列表

示例目标:生成一个包含1到100之间所有个位数为3的数字列表。

以下是使用普通循环方式实现的代码示例。


#生成一个存放1-100中个位数为3的数据列表
# 普通写法
list =[]
for i in range(1,101):
  if i % 10 == 3:
    list.append(i)
print(list)
#列表推导
list1=[i for i in range(1,101) if i % 10==3]
print(list1)

列表推导式实战:类型过滤与字典/集合推导示例

利用列表推导式从混合类型列表中提取整数元素,原始列表为[True, 33, "ll", "kk", 44, 34, 0]。


#利用列表推到是将 列表中的整数提取出来[True, 17, "hello", "bye", 98, 34, 21]
values =[True, 33, "ll", "kk", 44, 34, 0]
#type()校验数据类型
nums =[i for i in values if type(i) == int]
print(nums)

# 字典推导式:把字典中的key:value互换, {"b":"a","d":"c"}
dic = {"a":"b", "c":"d"}
new_dic = {dic[key]:key for key in dic} # key值是里面的 key = a,key = c
print(new_dic) # key = a,key = c dic[key] = b, d
 
lst1 = ["唐人街探案","Q","5颗星","悬疑"]
lst2 = ["电影", "第一", "评分", "类型"]
dic = {lst2[i]:lst1[i] for i in range(len(lst1))}
print(dic)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

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

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 算法库。