七、数据容器总结笔记

七、数据容器总结笔记

2026-02-20
Python基础
type
Post
status
Published
date
Feb 20, 2026
slug
python-data-containers-summary-notes-7
summary
每种容器都有自己的特点和适用场景。字符串、列表、元组、集合、字典——它们就像是不同的收纳工具,有的适合放文本,有的适合放有序数据,有的适合去重,有的适合存储键值对。理解它们的区别和联系,才能在实际编程中选择最合适的容器!
tags
Python数据存储容器
category
Python基础
icon
password
💡 学习感悟:每种容器都有自己的特点和适用场景。字符串、列表、元组、集合、字典——它们就像是不同的收纳工具,有的适合放文本,有的适合放有序数据,有的适合去重,有的适合存储键值对。理解它们的区别和联系,才能在实际编程中选择最合适的容器!

1. 数据容器总览

Python 中常用的数据容器有五种:
容器
英文
符号
核心特点
字符串
str
"" / ''
文本数据,不可变
列表
list
[]
有序可变,可重复
元组
tuple
()
有序不可变,可重复
集合
set
{}
无序不重复
字典
dict
{}
键值对存储,key 唯一
📝 我的理解:这五种容器就像是不同的收纳盒——
  • 字符串是密封袋:装文本,内容不能改
  • 列表是可变抽屉:可以增删改,东西按顺序放
  • 元组是固定盒子:东西按顺序放,但不能改
  • 集合是去重篮:东西乱放,重复的自动去掉
  • 字典是标签柜:每个东西都有标签(key),通过标签找东西

2. 五大容器特性对比

2.1 完整特性对比表

特性
字符串(str)
列表(list)
元组(tuple)
集合(set)
字典(dict)
有序性
✅ 有序
✅ 有序
✅ 有序
❌ 无序
✅ 有序(3.7+)
重复元素
✅ 允许
✅ 允许
✅ 允许
❌ 不允许
⚠️ key不允许
可变性
❌ 不可变
✅ 可变
❌ 不可变
✅ 可变
✅ 可变
索引访问
✅ 支持
✅ 支持
✅ 支持
❌ 不支持
❌ 不支持
切片操作
✅ 支持
✅ 支持
✅ 支持
❌ 不支持
❌ 不支持
使用场景
文本处理
有序可重复数据集合
固定数据记录
去重数据集合
键值对映射
📝 我的理解
  • 有序性:能不能按顺序取出元素,能不能用索引访问
  • 重复元素:能不能存相同的数据
  • 可变性:创建后能不能修改内容
  • 索引/切片:能不能用 [0][1:3] 这样的方式访问

2.2 可视化对比


3. 各容器详细说明

3.1 字符串(str)

适用场景:存储和处理文本数据
📝 我的理解:字符串就像写好的便签——你可以看、可以复制、可以拼接新的便签,但不能直接修改便签上的字。要"修改"只能创建一个新的字符串。

3.2 列表(list)

适用场景:需要频繁增删改的有序数据集合
📝 我的理解:列表就像抽屉——东西按顺序放,可以随时拿出来、放进去、换位置。是最灵活的数据容器!

3.3 元组(tuple)

适用场景:存储固定不变的数据记录,如坐标、配置项
📝 我的理解:元组就像封好的档案袋——东西按顺序放好了,贴上封条不能改。适合存一些固定信息,比如一个人的姓名、年龄、性别。

3.4 集合(set)

适用场景:需要去重、集合运算的场景
📝 我的理解:集合就像去重篮——东西扔进去,重复的自动去掉,而且不讲究顺序。适合做"有没有"的判断和集合间的运算。

3.5 字典(dict)

适用场景:需要通过标签(key)快速查找数据的场景
📝 我的理解:字典就像带标签的收纳柜——每个东西都有标签(key),通过标签就能快速找到东西。标签不能重复,但东西(value)可以重复。

4. 选择容器的方法

4.1 决策流程图

4.2 快速选择指南

你的需求
推荐容器
原因
存一段文字
字符串
专门处理文本
存成绩列表,会增删
列表
可变、有序
存坐标点,固定不变
元组
不可变、有序
去重
集合
自动去重
通过学号查学生信息
字典
键值对映射
需要索引访问
字符串/列表/元组
支持索引和切片

5. 遇到的问题和解决

5.1 字符串不可变导致的困惑

⚠️ 踩坑记录:刚开始我总想把字符串当成列表来修改,结果一直报错。记住:字符串是不可变的!要"修改"只能创建新的字符串。

5.2 集合和字典都用 {}

⚠️ 踩坑记录{} 默认是字典!要创建空集合必须用 set()。有元素的集合 {1, 2, 3} 和字典 {"a": 1} 写法不同,但空的时候要注意区分。

5.3 字典不能用索引访问

⚠️ 踩坑记录:字典是无序的(3.7+ 是有序的,但也不建议用索引),必须通过 key 访问。如果 key 不存在会报错,用 get() 方法更安全。

5.4 元组只有一个元素时的坑

⚠️ 踩坑记录(1) 会被当成数学运算的括号!单元素元组必须在元素后加逗号 (1,),这才是真正的元组。

6. 核心知识点整理

6.1 容器特性速查表

容器
有序
可变
重复
索引
适用场景
字符串
文本
列表
可变序列
元组
固定记录
集合
去重/运算
字典
✅(3.7+)
key❌
键值映射

6.2 常用操作速查

操作
字符串
列表
元组
集合
字典
创建
"abc"
[1,2]
(1,2)/1,2
{1,2}
{"a":1}
长度
len()
len()
len()
len()
len()
访问
[索引]
[索引]
[索引]
不支持
[key]
切片
[start:end]
[start:end]
[start:end]
不支持
不支持
添加
不可变
append()
不可变
add()
dict[key]=val
删除
不可变
remove()
不可变
remove()
del dict[key]

6.3 需要注意的

  • 不确定用什么时,先用列表(最灵活)
  • 数据固定不变时,用元组(更安全、更快)
  • 需要去重时,用集合
  • 需要通过标签查找时,用字典
  • 处理文本时,用字符串
推荐云服务

雨云 - 云服务器首选

稳定 · 高速 · 性价比超高

使用优惠码立享折扣,开启你的云端之旅~

一元试用秒级开通24h在线客服

优惠码

zqf
立即访问
Loading...
灵心小窝

灵心小窝

这里不是一个喧闹的地方,只是用来存放一些还不想遗忘的东西。

声明 © 2026 早清风
加载中...