Python中列表、元组、集合、字典;四者的关系
·
Python 中的列表(list)、元组(tuple)、集合(set)、字典(dict)都是用于存储多个数据的容器类型,它们有共同点,也有明显区别。
可以先用一句话概括:
列表和元组是“有序序列”;集合是“无序不重复集合”;字典是“键值映射表”。
1. 四者的整体关系
Python 容器
|
---------------------------------
| | |
序列 集合 映射
| | |
list tuple set dict
更详细:
| 类型 | 中文 | 存储方式 | 是否有序 | 是否可重复 | 是否可变 |
|---|---|---|---|---|---|
| list | 列表 | 元素集合 | ✅ 有序 | ✅ 可以 | ✅ 可变 |
| tuple | 元组 | 元素集合 | ✅ 有序 | ✅ 可以 | ❌ 不可变 |
| set | 集合 | 元素集合 | ❌ 无序 | ❌ 不可以 | ✅ 可变 |
| dict | 字典 | 键→值 | ✅ 保持插入顺序 | key不可重复 | ✅ 可变 |
2. 列表 list
特点
- 有顺序
- 可以修改
- 可以存重复元素
- 可以通过下标访问
例:
nums = [10, 20, 30, 20]
print(nums[0])
输出:
10
修改:
nums[1] = 99
print(nums)
结果:
[10, 99, 30, 20]
适合:
- 数据经常变化
- 需要保持顺序
例如:
students = ["Tom", "Jack", "Mary"]
3. 元组 tuple
元组和列表很像,但是:
元组创建后不能修改
例如:
point = (10, 20)
print(point[0])
输出:
10
但是:
point[0] = 100
会报错:
TypeError
因为 tuple 不可变。
适合:
- 不希望数据被修改
- 固定的数据
例如:
RGB = (255, 0, 0)
表示红色,不应该随意改变。
4. 集合 set
集合类似数学中的集合。
特点:
① 自动去重
s = {1,2,3,3,3}
print(s)
结果:
{1,2,3}
重复元素会消失。
② 没有下标
不能:
s[0]
因为集合没有顺序。
③ 支持集合运算
例如:
a = {1,2,3}
b = {3,4,5}
print(a & b)
交集:
{3}
并集:
print(a | b)
结果:
{1,2,3,4,5}
适合:
- 去重
- 判断包含关系
例如:
users = {"Tom", "Jack", "Mary"}
5. 字典 dict
字典保存的是:
key : value
键 : 值
例如:
student = {
"name": "Tom",
"age": 18,
"score": 95
}
访问:
print(student["name"])
输出:
Tom
字典类似现实中的:
| 现实 | Python |
|---|---|
| 身份证号 | key |
| 姓名 | value |
例如:
10001 → Tom
10002 → Jack
10003 → Mary
特点:
key必须唯一
d = {
"a":1,
"a":2
}
print(d)
结果:
{'a':2}
后面的覆盖前面的。
6. 四者最重要区别
(1)访问方式
list / tuple
靠位置:
a = ["apple","banana"]
a[0]
结果:
apple
dict
靠名字:
person = {
"name":"Tom"
}
person["name"]
结果:
Tom
set
不能通过位置:
s={1,2,3}
s[0]
错误。
(2)可变性
可变:
可以修改内部内容:
list
set
dict
例如:
a=[1,2]
a.append(3)
不可变:
tuple
例如:
a=(1,2)
不能:
a[0]=3
(3)重复元素
允许重复:
list
tuple
例如:
[1,1,2]
(1,1,2)
不允许重复:
set
dict的key
例如:
{1,1,2}
结果:
{1,2}
7. 四者转换关系
它们之间可以互相转换:
list → tuple
a=[1,2,3]
b=tuple(a)
结果:
(1,2,3)
tuple → list
a=(1,2,3)
b=list(a)
结果:
[1,2,3]
list → set(去重)
a=[1,2,2,3]
b=set(a)
结果:
{1,2,3}
dict → list
d={"a":1,"b":2}
list(d)
得到:
['a','b']
默认取 key。
8. 实际选择口诀
| 需求 | 选择 |
|---|---|
| 需要顺序、经常修改 | list |
| 固定数据,不希望修改 | tuple |
| 需要去重 | set |
| 需要通过名字查找 | dict |
9. 一个综合例子
假设保存学生信息:
列表:
students = ["Tom","Jack","Mary"]
表示:
一组学生名单
元组:
position = (120,80)
表示:
一个固定坐标
集合:
courses = {"Python","Java","C++"}
表示:
不重复课程集合
字典:
student = {
"name":"Tom",
"age":18,
"score":90
}
表示:
一个学生对象的信息
最后总结一句:
- list:有序、可变、可重复的“盒子”
- tuple:有序、不可变的“固定盒子”
- set:无序、不重复的“集合”
- dict:键值对应的“查找表”
它们都是 Python 中最基础、最常用的数据结构。掌握这四个,基本就掌握了 Python 数据组织方式的核心。
更多推荐


所有评论(0)