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

Python 数据结构综合速查:列表 / 字典 / 集合 / 元组对比

在 Python 编程中,最常用的四大内置数据结构就是 列表(list)、字典(dict)、集合(set) 和 元组(tuple)。无论是日常开发,还是技术面试,这四者都是高频考点。本文将带你快速梳理它们的特点、操作方式以及常见面试考点,帮助你建立全面清晰的认知。

一、列表(list)

特点:有序、可变、可重复。

常见用途:存放多个数据,支持索引和切片。

定义与访问

nums = [10, 20, 30]

print(nums[0]) # 10

print(nums[-1]) # 30

修改

nums[1] = 99

print(nums) # [10, 99, 30]

添加与删除

nums.append(40) # 末尾追加

nums.remove(10) # 删除指定值

print(nums) # [99, 30, 40]

应用场景:适合存放有序集合,比如任务队列、数据列表。

二、字典(dict)

特点:无序、可变、键唯一、键必须是不可变对象。

常见用途:存放键值对,快速查找。

定义与访问

person = {"name": "Alice", "age": 25}

print(person["name"]) # Alice

修改与新增

person["age"] = 26

person["city"] = "Beijing"

删除

del person["name"]

print(person) # {'age': 26, 'city': 'Beijing'}

应用场景:适合存储映射关系,如用户信息表、配置项。

三、集合(set)

特点:无序、可变、不重复,元素必须是不可变对象。

常见用途:去重、数学集合运算。

定义与去重

s = {1, 2, 2, 3, 4}

print(s) # {1, 2, 3, 4}

集合运算

a = {1, 2, 3}

b = {3, 4, 5}

print(a | b) # 并集 {1, 2, 3, 4, 5}

print(a & b) # 交集 {3}

print(a - b) # 差集 {1, 2}

应用场景:适合快速去重、标签处理、关键词集合计算。

四、元组(tuple)

特点:有序、不可变、可重复。

常见用途:存放固定集合,用于函数返回多个值。

定义与访问

t = (1, 2, 3)

print(t[0]) # 1

不可修改

2. t[1] = 99 # 报错:TypeError

元组解包

x, y, z = t

print(x, y, z) # 1 2 3

应用场景:适合存放固定数据,如经纬度、RGB 值。

五、常见对比总结

1. 可变性

● 列表、字典、集合:可变

● 元组:不可变

2. 有序性

● 列表、元组:有序

● 字典(Python 3.7+ 保证插入顺序)、集合:无序

3. 是否允许重复

● 列表、元组:允许

● 字典键、集合:不允许重复

4. 典型应用

● 列表:顺序存储

● 字典:映射关系

● 集合:去重与集合运算

● 元组:不可变集合、函数多返回值

六、面试高频考点

1. 列表 vs 元组

● 列表可变,元组不可变。

● 元组因为不可变,通常更轻量,作为字典键或集合元素时必须用元组。

2. 字典键能否使用列表?

● 不行,因为列表是可变对象。

● 可以用元组作为字典键。

3. 集合的底层实现

● 基于哈希表,支持快速查找。

● 元素必须是可哈希对象,因此不能包含列表、字典。

4. 字典与 JSON 的区别

● Python 字典是内存对象,支持多种数据类型。

● JSON 是字符串格式,用于数据传输。

七、总结

● 列表(list):可变有序,用于存放多个数据。

● 字典(dict):键值对存储,适合快速查找。

● 集合(set):无序去重,支持集合运算。

● 元组(tuple):不可变序列,适合固定数据存放。

在实际开发中,正确选择数据结构不仅能让代码更简洁,还能大幅提升性能。面试中,考察的往往不是单一语法,而是能否理解它们的 特性、区别与应用场景。

http://www.dtcms.com/a/449568.html

相关文章:

  • 宁波建设工程报名网站搭建一个网站的具体步骤
  • 第十七章:遍历万象,步步为营——Iterator的迭代艺术
  • 记一次vcenter server 无法同步主机的故障处理过程
  • 手搓20颗芯片|专栏开篇:从0到1搭建芯片设计与UVM验证体系
  • 《 Linux 点滴漫谈: 三 》Linux 的骨架:文件系统与目录结构的完整图谱
  • 跨境自建站模板库存网站建设公司
  • 【Web安全】转义字符注入?转义也会失效的SQL注入
  • 虚拟机中建设iis网站网站推广洛阳
  • python+vue高校新生报到管理系统设计(源码+文档+调试+基础修改+答疑)
  • 中秋连连看小游戏开发完整教程
  • 产品图案设计网站一起做网店网站入驻收费
  • traffic-filter inbound acl 概念及题目
  • Python3 XML 解析
  • 驾驭涌现的艺术:自组织系统——解锁复杂世界的创新与适应力
  • 青岛做外贸网站建设西安网站建设培训中心
  • 【MES架构师与C#高级工程师(设备控制方向)两大职业路径的技术】
  • MySQL 8.0.26崩溃恢复全解析
  • 北京哪个网站最好湖南网络营销
  • 【Linux】MobaXterm 工具介绍
  • 2025-10-6学习笔记
  • 【面板数据】各国数字服务贸易进出口额数据集(2005-2023年)
  • dede怎么做商城网站个人网站免费制作平台
  • Oracle OCP认证考试题目详解082系列第57题
  • 嵌入式开发学习日志36——stm32之USART串口通信前述
  • Linux中capability权能管理的实现
  • Python 语法与注释详解
  • joomla 网站建设教程合肥网站推广公司
  • 介绍一个做美食的网站网店网站技术方案
  • 电源——BUCK电路设计实战
  • wordpress点击页面跳转通辽做网站通过seo来赚钱