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+)
相关推荐
顾林海20 分钟前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱3 小时前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽8 小时前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码8 小时前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
兵慌码乱18 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵19 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio1 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户0332126663671 天前
使用 Python 从零创建 Word 文档
python
Csvn1 天前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽1 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate