第五章:Python 数据结构:列表、元组与字典(二)

Python 列表、元组与字典详解:从基础到实战


系列文章目录

第一章 Python语言基础与应用领域
第二章 Python 开发环境搭建与工具配置(一)
第二章 Python开发环境搭建与工具配置(二)
第三章:Python基本语法规则详解(一)
第三章:Python基本语法规则详解(二)


文章目录

  • [Python 列表、元组与字典详解:从基础到实战](#Python 列表、元组与字典详解:从基础到实战)
  • 系列文章目录
    • 三、字典(Dictionary):键值对存储结构
      • [3.1 字典的定义与特点](#3.1 字典的定义与特点)
      • [3.2 字典的常用操作](#3.2 字典的常用操作)
      • [3.3 字典的键与值规则](#3.3 字典的键与值规则)
      • [3.4 常见错误及解决](#3.4 常见错误及解决)
    • 四、实战练习
      • [练习 1:列表操作](#练习 1:列表操作)
      • [练习 2:学生信息管理](#练习 2:学生信息管理)
    • 五、总结

三、字典(Dictionary):键值对存储结构

3.1 字典的定义与特点

字典是可变、无序 的键值对(key-value)集合,通过键快速访问值,用花括号 {} 定义:

python 复制代码
empty_dict = {}  # 空字典
person = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}
mixed_dict = {1: "one", "two": 2, 3.14: "pi"}  # 不同类型的键
nested_dict = {  # 嵌套字典
    "user1": {"name": "Alice", "age": 30},
    "user2": {"name": "Bob", "age": 25}
}

# 用 dict() 函数创建
person = dict(name="Alice", age=30, city="New York")

字典的核心特点:

  • 键值对结构:通过键(key)访问值(value)

  • 无序性:键值对没有固定顺序(Python 3.7+ 保留插入顺序)

  • 键唯一性:同一个字典中键不能重复(重复会覆盖)

  • 高效查找:基于哈希表实现,查找速度极快

3.2 字典的常用操作

访问值

python 复制代码
person = {"name": "Alice", "age": 30}
print(person["name"])  # Alice(直接访问,键不存在会报错)
print(person.get("age"))  # 30(get方法,键不存在返回None)
print(person.get("city", "Unknown"))  # Unknown(指定默认值)

添加 / 修改键值对

python 复制代码
person = {"name": "Alice"}
person["age"] = 30  # 添加新键值对
person["name"] = "Bob"  # 修改已有键的值

删除操作

python 复制代码
person = {"name": "Alice", "age": 30, "city": "New York"}
del person["city"]  # 删除指定键
age = person.pop("age")  # 删除并返回值
key, value = person.popitem()  # 删除最后一个键值对(3.7+)

遍历字典

python 复制代码
person = {"name": "Alice", "age": 30, "city": "New York"}

# 遍历键
for key in person:
    print(key)  # name, age, city

# 遍历值
for value in person.values():
    print(value)  # Alice, 30, New York

# 遍历键值对
for key, value in person.items():
    print(f"{key}: {value}")

3.3 字典的键与值规则

键的要求

  • 必须是不可变类型(字符串、数字、元组等)

  • 不能是列表(列表是可变的)

  • 必须唯一(重复键会被后面的覆盖)

python 复制代码
valid_dict = {(1, 2): "tuple_key"}  # 合法(元组作为键)
invalid_dict = {[1, 2]: "list_key"}  # 错误(列表不能作为键)

值的特点

  • 可以是任意类型(包括列表、字典等可变类型)

  • 可以重复

  • 可变值可以被修改

python 复制代码
my_dict = {"hobbies": ["reading", "music"]}
my_dict["hobbies"].append("sports")  # 可以修改列表值

3.4 常见错误及解决

  1. 访问不存在的键
python 复制代码
# 错误示例
person = {"name": "Alice"}
print(person["age"])  # KeyError
# 解决:用 get() 方法
print(person.get("age", 0))  # 0(指定默认值)
  1. 混淆键和值
python 复制代码
# 错误示例
person = {"name": "Alice"}
print(person["Alice"])  # 想用值查键,会报错
# 解决:如果需要反向查找,需手动实现

四、实战练习

练习 1:列表操作

实现功能:创建 1-5 的列表,添加 6,在索引 2 插入 7,移除 3,排序后反转

python 复制代码
# 代码实现
nums = [1, 2, 3, 4, 5]
nums.append(6)
nums.insert(2, 7)
nums.remove(3)
nums.sort()
nums.reverse()
print(nums)  # 输出:[7, 6, 5, 4, 2, 1]

练习 2:学生信息管理

用字典实现学生信息的增删改查

python 复制代码
# 代码实现
students = {}
# 添加信息
students["Alice"] = 20
students["Bob"] = 21
# 输出所有学生
for name, age in students.items():
    print(f"{name}: {age}")
# 修改信息
students["Alice"] = 22
# 删除信息
del students["Bob"]
print(students)  # 输出:{'Alice': 22}

五、总结

  • 列表:可变有序集合,适合需要频繁修改的数据

  • 元组:不可变有序集合,适合存储固定数据或作为字典键

  • 字典:键值对结构,适合通过唯一标识快速查找数据

选择合适的数据结构能让代码更高效、更易维护。建议多做练习,熟练掌握它们的操作方法和应用场景。

下一篇将讲解集合与推导式,敬请关注!如果有疑问欢迎在评论区交流~

相关推荐
我是是是是是西红柿2 小时前
游戏中的展销系统使用的数据结构
数据结构·游戏
番薯大佬2 小时前
Python学习-day8 元组tuple
java·python·学习
小文数模2 小时前
2025高教社国赛数学建模C题参考论文(含模型和代码)
python·数学建模·matlab
爱吃烤鸡翅的酸菜鱼3 小时前
【Redis】常用数据结构之Hash篇:从常用命令到使用场景详解
数据结构·数据库·redis·后端·缓存·哈希算法
二进制person3 小时前
数据结构--Map和Set
数据结构
我叫汪枫3 小时前
C语言深度入门系列:第十一篇 - 动态内存管理与数据结构:程序世界的高效算法大师
c语言·数据结构·算法
啊?啊?3 小时前
7 排序算法通关指南:从 O (n²)(选择 / 冒泡)到 O (nlogn)(快排 / 归并)+ 计数排序
数据结构·算法·排序算法
鸡哥爱技术3 小时前
Django入门笔记
笔记·python·django
猫耳君4 小时前
汽车网络安全 CyberSecurity ISO/SAE 21434 测试之一
python·安全·网络安全·汽车·iso/sae 21434·cybersecurity