Python 四大核心数据结构:列表、字典、元组、集合

一、快速总览(一眼看懂区别)

名称 符号 有序 可修改 重复 核心特点
列表 (List) [] ✅ 是 ✅ 是 ✅ 可 最常用、有序、可增删改查
元组 (Tuple) () ✅ 是 ❌ 否 ✅ 可 不可修改、安全、速度快
字典 (Dict) {} ✅(3.7+) ✅ 是 ❌ 键不可 键值对、通过名字取值
集合 (Set) {} ❌ 否 ✅ 是 ❌ 不可 自动去重、数学集合运算

二、逐个详解(带代码示例)

1. 列表 (List) ------ 万能数组

用 [] 表示,有序、可修改、可重复 相当于一个有序的储物箱,可以放任意类型数据,随时增删改。

复制代码
# 定义
my_list = [10, "Python", True, 3.14]

# 常用操作
my_list.append("新增")    # 末尾添加
my_list[0] = 100          # 修改第1个元素
del my_list[1]            # 删除元素
print(my_list[0])         # 取值:按索引(从0开始)

适用场景:存有序列表(如学生名单、商品列表)


2. 元组 (Tuple) ------ 不可修改的列表

用 () 表示,有序、不可修改、可重复 和列表几乎一样,但一旦创建就不能改,更安全、更快。

复制代码
# 定义
my_tuple = (10, "Python", True)

# 只能取值,不能增删改
print(my_tuple[1])  # 输出 Python

# 尝试修改会报错!
# my_tuple[0] = 100  # 报错

适用场景:固定不变的数据(如坐标、配置信息、函数返回多值)


3. 字典 (Dict) ------ 键值对映射

用 {key: value} 表示,键值对、可修改、键不可重复 相当于查字典 :通过键 (key) 快速找 值 (value)。

复制代码
# 定义:键: 值
person = {
    "name": "小明",
    "age": 20,
    "city": "北京"
}

# 取值:用键,不用索引
print(person["name"])  # 小明

# 修改/添加
person["age"] = 21
person["gender"] = "男"

适用场景:描述一个对象的属性(用户信息、商品详情、接口数据)


4. 集合 (Set) ------ 自动去重

用 {} 表示,无序、无索引、无重复 最大特点:自动去掉重复值,支持数学交集 / 并集 / 差集。

复制代码
# 定义(自动去重)
my_set = {1, 2, 2, 3, 3, 3}
print(my_set)  # 输出 {1,2,3}

# 常用操作
my_set.add(4)    # 添加
my_set.remove(2) # 删除

# 数学运算
a = {1,2,3}
b = {3,4,5}
print(a & b)  # 交集 {3}
print(a | b)  # 并集 {1,2,3,4,5}

适用场景:去重、判断元素是否存在、集合运算(如共同好友)


三、最简单记忆口诀

  1. 要有序、能修改 → 用 列表 []
  2. 要有序、不能改 → 用 元组 ()
  3. 要键值对、查得快 → 用 字典 {}
  4. 要去重、算集合 → 用 集合 {}

四、最常用操作速查表

操作 列表 元组 字典 集合
创建 [] () {k:v} {}
取值 [索引] [索引] [键] 不支持
修改 ✅ ❌ ✅ ✅
去重 ❌ ❌ 键去重 ✅
顺序 有 有 有 (3.7+) 无
相关推荐
hhzz21 分钟前
【YOLO 入门到精通 04】理解任务与模型家族:7 大 CV 任务与 YOLO26 选型指南
人工智能·python·深度学习·yolo·计算机视觉
Escalating_xu29 分钟前
【Python】使用库:标准库、第三方库、pip、项目实战与程序打包
java·python·pip
水獭比特31 分钟前
Agent 工具审批不止一个按钮:用 v0.22.1 复盘入口、恢复和副作用
人工智能·python
苦瓜打怪兽1 小时前
leetcode 热题100(11. 盛最多水的容器)
python·算法·leetcode
砚底藏山河1 小时前
量化实战:回测数据底座快照与版本管理进阶
java·大数据·python·金融·maven
“AI国潮设计-小江”1 小时前
《Python+SDXL实战:用ControlNet批量生成“英歌舞麻将糕”IP,附自动化脚本与商用思路》
开发语言·人工智能·python·prompt·aigc
w_zero_one2 小时前
链表(4)
java·数据结构·算法
逗脑IDE3 小时前
零基础学ESP32:RFID无线射频卡——让ESP32拥有“刷卡“能力!
开发语言·网络·人工智能·python·esp32·硬件开发
协皓家具3 小时前
2026年广州岛台吧台椅厂家有啥新变化
大数据·运维·python·devops
yuniko-n3 小时前
【Java】字符串相关坑点
java·开发语言·python