摘要:
Python五大核心数据结构各具特色:列表(List)为可变有序容器,支持动态增删改查;字符串(String)为不可变序列,专注文本处理与编码存储;元组(Tuple)不可变且有序,用于保护固定数据(如配置项);集合(Set)无序且元素唯一,专精去重与集合运算;字典(Dictionary)以键值对实现O(1)高效查询,适合结构化数据管理。灵活运用列表的动态性、字符串的安全性、元组的稳定性、集合的排重能力及字典的映射逻辑,可显著提升代码效率与可维护性。
目录
[1. 定义与特性](#1. 定义与特性)
[2. 常用操作](#2. 常用操作)
[3. 应用场景](#3. 应用场景)
[1. 定义与特性](#1. 定义与特性)
[2. 基本操作](#2. 基本操作)
[3. 应用场景](#3. 应用场景)
[1. 定义与特性](#1. 定义与特性)
[2. 基本操作](#2. 基本操作)
[3. 应用场景](#3. 应用场景)
一、字典(Dictionary)
1. 定义与特性
- 键值对容器:存储形式为 {key: value},键必须唯一且不可变(可哈希)。
- 高效查询:通过键直接访问值,时间复杂度 O(1)。
- 有序性:Python 3.7+ 中字典保持插入顺序。
2. 常用操作
定义字典
# 定义字典
person = {"name": "Alice", "age": 25, "city": "Beijing"}
增删改查
# 增删改查
person["gender"] = "Female" # 新增键值对
del person["age"] # 删除键值对
person["city"] = "Shanghai" # 修改值
print(person.get("name")) # 安全获取值 → "Alice"
遍历操作
# 遍历操作
for key in person: # 遍历键
print(key, person[key])
for key, value in person.items(): # 同时遍历键值
print(f"{key}: {value}")
字典的生成式
keys = ["a", "b", "c"]
values = [1, 2, 3]
dic = {k: v for k, v in zip(keys, values)} # → {'a':1, 'b':2, 'c':3}
3. 应用场景
-
结构化数据存储:如JSON数据处理、数据库查询结果。
-
快速查找表:如单词计数器、缓存机制。
-
配置管理:存储程序参数或环境变量。
二、集合(Set)
1. 定义与特性
-
无序可变容器:元素唯一且不可重复,不支持索引访问。
-
去重利器:自动去除重复元素,适合数据清洗。
-
哈希约束:元素必须是不可变类型(如数字、字符串、元组)。
2. 基本操作
定义集合
# 定义集合
s1 = {1, 2, 2, 3} # 自动去重 → {1, 2, 3}
s2 = set("hello") # → {'h', 'e', 'l', 'o'}
去重应用
# 去重应用
lst = [1, 2, 2, 3, 4]
unique_lst = list(set(lst)) # → [1, 2, 3, 4]
集合运算
# 集合运算
a = {1, 2, 3}
b = {3, 4, 5}
print(a & b) # 交集 → {3}
print(a | b) # 并集 → {1, 2, 3, 4, 5}
3. 应用场景
-
数据去重:快速清理重复记录。
-
成员检查:in 操作时间复杂度为 O(1),效率极高。
-
集合运算:交集、并集、差集等数学操作。
三、元组(Tuple)
1. 定义与特性
-
不可变有序容器:元组由一系列元素组成,一旦创建无法修改(增删改),内存地址固定。
-
支持混合类型:元素可以是数字、字符串、列表等任意数据类型。
-
有序可索引:与列表和字符串类似,支持索引取值和切片操作。
2. 基本操作
定义元组
# 定义元组
t1 = (1, "apple", [2, 3]) # 逗号是关键,单元素需写为 (12,)
t2 = tuple("hello") # → ('h', 'e', 'l', 'l', 'o'
索引与切片
# 索引与切片
print(t1[1]) # 输出 "apple"
print(t2[1:4]) # 输出 ('e', 'l', 'l')
元组解包
# 元组解包
a, b, c = (10, 20, 30)
print(a, b, c) # 输出 10 20 30
3. 应用场景
-
存储不可变数据:如身份证号、IP地址、配置参数。
-
函数多返回值:函数返回多个值时自动打包为元组。
-
字典键:元组不可变,可作为字典的键。四、对比与总结
四、对比与总结
|-------|-------------|------------|----------------|
| 特性 | 元组(Tuple) | 集合(Set) | 字典(Dictionary) |
| 可变性 | 不可变 | 可变 | 可变 |
| 元素唯一性 | 允许重复 | 元素唯一 | 键唯一,值可重复 |
| 有序性 | 有序 | 无序 | Python 3.7+ 有序 |
| 查询效率 | 索引访问(O(1)) | 成员检查(O(1)) | 键查询(O(1)) |
| 典型应用 | 不可变数据、函数返回值 | 去重、集合运算 | 结构化数据、快速查找 |
选择建议:
-
元组:数据需保护不被修改时使用(如常量配置)。
-
集合:快速去重或检查元素是否存在时使用。
-
字典:需通过键高效管理关联数据时使用。
五、代码实战示例
示例1:统计单词频率(字典应用)
text = "apple banana apple orange banana apple"
words = text.split()
frequency = {}
for word in words:
frequency[word] = frequency.get(word, 0) + 1
print(frequency) # → {'apple':3, 'banana':2, 'orange':1}
示例2:列表去重(集合应用)
data = [1, 2, 2, 3, 4, 4, 5]
unique_data = list(set(data)) # → [1, 2, 3, 4, 5]
示例3:多返回值函数(元组应用)
def get_user_info():
return "Alice", 25, "Beijing"
name, age, city = get_user_info()
掌握元组、集合、字典的核心特性与操作,能够大幅提升Python编程效率。合理选择数据结构,是写出优雅高效代码的关键!