Python 四大容器:列表 list、元组 tuple、字典 dict、集合 set

一、总览对比

类型 符号 可变? 有序? 元素特点 核心用途
列表 list [] ✅ 可变 ✅ 有序 可重复、任意类型 存一组有序数据,增删改查
元组 tuple () ❌ 不可变 ✅ 有序 可重复、任意类型 固定不变数据,做函数返回、字典键
字典 dict {k:v} ✅ 可变 ✅ 有序(py3.7+) 键唯一,值任意 键值对应,快速查找
集合 set {} ✅ 可变 ❌ 无序 自动去重、只能存不可变元素 去重、交集并集差集运算

二、列表 list []

1. 创建

lst = [10, 3.14, "python", True]
empty = []

2. 常用操作

lst = [2,4,6,8]
# 取值索引(从0开始)
print(lst[0])   # 2
print(lst[-1])  # 最后一位 8

# 修改元素
lst[1] = 99

# 增删
lst.append(10)    # 末尾添加
lst.insert(1, 33) # 指定位置插入
lst.pop()         # 删除末尾,返回值
lst.remove(6)     # 删除指定元素
del lst[0]        # 根据索引删除

# 切片
print(lst[1:3])
# 长度
print(len(lst))

特性:有序、可重复、随时增删改

三、元组 tuple ()

1. 创建

t1 = (1, 2, "abc")
t2 = (5,)   # 单个元素必须加逗号,否则不是元组
t3 = ()     # 空元组

2. 操作:只能查,不能改、增、删

t = (10,20,30)
print(t[0])
print(t[-1])
print(len(t))
# t[0] = 99  # 报错!元组不可修改

使用场景

  1. 数据不允许被修改(坐标、固定参数)
  2. 可作为字典的 key(列表不行)
  3. 函数多返回值默认用元组

四、字典 dict {key:value}

1. 创建

d = {"name":"小明", "age":20, "height":1.75}
empty_dict = {}

规则:

  • key(键):必须不可变(数字、字符串、元组),唯一
  • value(值):任意类型,可重复

2. 常用操作

d = {"name":"小明", "age":20}
# 取值两种方式
print(d["name"])
print(d.get("age"))

# 新增/修改键值对
d["gender"] = "男"
d["age"] = 21

# 删除
del d["gender"]
d.pop("age")

# 获取所有键、值、键值对
print(d.keys())
print(d.values())
print(d.items())

特点:查询速度极快,适合一一对应数据

五、集合 set {}

1. 创建

s = {1,2,3,3,2}  # 自动去重 → {1,2,3}
empty_set = set() # 空集合不能用{},{}是空字典

限制:集合内不能放列表、字典等可变类型

2. 集合运算(最核心)

a = {1,2,3,4}
b = {3,4,5,6}
print(a | b)  # 并集:全部元素去重 {1,2,3,4,5,6}
print(a & b)  # 交集:共同元素 {3,4}
print(a - b)  # 差集:a独有 {1,2}
print(a ^ b)  # 对称差集:只存在一边 {1,2,5,6}

3. 增删

s = {1,2,3}
s.add(9)
s.remove(2)
s.discard(10) # 不存在也不报错

用途:快速列表去重、数据对比

六、简单区分记忆

  1. 需要频繁增删数据 → 列表
  2. 数据固定、不允许修改 → 元组
  3. 需要一一对应、按键快速查找 → 字典
  4. 需要去重、求交集并集 → 集合

七、小练习

# 1.列表去重
lst = [1,2,2,3,3,3]
new_lst = list(set(lst))
print(new_lst)

# 2.字典遍历
student = {"name":"小红", "score":90}
for k,v in student.items():
    print(k, v)
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐