# Python 四大核心数据结构详解

# Python 四大核心数据结构详解

**列表（List）· 元组（Tuple）· 字典（Dictionary）· 集合（Set）**

* * *

## 1\. 列表（List）

有序、可变的元素集合，支持重复元素和混合数据类型，是 Python 中最常用的数据结构之一。

### 核心特性

| 特性 | 说明 |
| --- | --- |
| 定义符号 | `[元素1, 元素2, ...]` |
| 有序性 | 按插入顺序排列，支持索引访问 |
| 可变性 | 支持增、删、改元素（不创建新列表） |
| 重复性 | 允许存在重复元素 |
| 元素约束 | 无约束，支持任意数据类型（包括嵌套） |
| 适用场景 | 有序可修改的数据集（如任务列表、记录集合） |

### 常用操作代码示例

##### 1. 定义列表

```py
list = [1, "a", True, [2, 3]]          # 混合类型+嵌套
```

##### 2. 访问元素（索引/切片）

```py
print(list[0])         # 正索引：1
print(list[-1])        # 负索引：[2, 3]
print(list[1:3])       # 切片：["a", True]
```

##### 3. 增删改

```py
list.append(4)         # 末尾添加：[1, "a", True, [2,3], 4]
list.insert(1, "b")    # 指定位置插入：[1, "b", "a", ...]
list[0] = 100          # 修改元素：[100, "b", "a", ...]
list.pop(2)            # 按索引删除：删除 "a"
list.remove(True)      # 按值删除：删除 True
```

##### 4. 其他常用方法

```py
list.extend([5, 6])    # 扩展列表：[100, "b", [2,3], 4,5,6]
list.sort()            # 排序（仅同类型元素可用）
print(list)
```

* * *

## 2\. 元组（Tuple）

有序、不可变、更安全、更快，一旦创建不能修改。

### 核心特性

| 特性 | 说明 |
| --- | --- |
| 定义符号 | (元素 1, 元素 2, ...) |
| 有序性 | ✅ 有序 |
| 可变性 | ❌ 不可修改 |
| 重复性 | ✅ 允许重复 |
| 适用场景 | 固定配置、函数返回值 |

### 常用操作代码示例

```python
# 1. 定义元组
t = (10, 20, "hello", [1,2])

# 2. 访问元素（仅支持访问）
print(t[0])    # 10
print(t[-1])   # [1,2]

# 3. 元组不可增删改，以下操作都会报错
# t.append(30)
# t[0] = 100
# del t[1]
```

* * *

## 3\. 字典（Dictionary）

键值对存储、无序、键唯一、查找极快。

### 核心特性

| 特性 | 说明 |
| --- | --- |
| 定义符号 | {key: value, ...} |
| 存储方式 | 键值对（key-value） |
| 键唯一性 | ✅ 键不能重复 |
| 查找速度 | ⚡ 极快（哈希表） |

### 常用操作代码示例

```python
# 1. 定义字典
user = {"name": "小明", "age": 20, "gender": "男"}

# 2. 访问值
print(user["name"])
print(user.get("age"))

# 3. 添加/修改键值对
user["age"] = 21          # 修改
user["city"] = "北京"     # 新增

# 4. 删除键值对
user.pop("gender")        # 按key删除
del user["age"]           # del删除

# 5. 获取所有键、所有值
print(user.keys())
print(user.values())
```

* * *

## 4\. 集合（Set）

无序、无索引、元素唯一、自动去重。

### 核心特性

| 特性 | 说明 |
| --- | --- |
| 定义符号 | {元素 1, 元素 2, ...} |
| 有序性 | ❌ 无序 |
| 重复性 | ❌ 自动去重 |
| 常用功能 | 去重、交集、并集、差集 |

### 常用操作代码示例

```python
# 1. 定义集合
s = {1, 2, 2, 3, 3, 4}  # 自动去重 → {1,2,3,4}

# 2. 列表快速去重（最常用）
list = [1,1,2,2,3,3,4]
new_list = list(set(list))

# 3. 添加元素
s.add(5)
s.update([6,7,8])

# 4. 删除元素
s.remove(3)
s.discard(10)  # 不存在不报错

# 5. 集合运算
a = {1,2,3}
b = {3,4,5}
print(a & b)  # 交集 {3}
print(a | b)  # 并集 {1,2,3,4,5}
print(a - b)  # 差集 {1,2}
```

* * *

## 增删改查操作对比

| 操作 | 列表 List | 元组 Tuple | 字典 Dict | 集合 Set |
| --- | --- | --- | --- | --- |
| 增加 | append、insert | ❌ | dict\[key\] = val | add、update |
| 删除 | remove、pop | ❌ | pop、del | remove、discard |
| 修改 | list\[index\] = x | ❌ | dict\[key\] = x | ❌ |
| 查找 | 索引 / 切片 | 索引 | 键查找 | 循环 /in 判断 |

* * *

## 📌 最终总结

*   List：最常用，需要增删改用它
    
*   Tuple：数据不可变，安全、高效
    
*   Dict：键值对，快速查找
    
*   Set：自动去重、集合运算
