跳转至

Python字典完整学习指南

1. 什么是字典?想象一下...

想象你有一个神奇的通讯录!这个通讯录有些特别: - 每个联系人都有自己的名字(键)和联系方式(值) - 可以随时添加新的联系人 - 可以修改已有联系人的信息 - 可以快速找到任何人的联系方式

在Python中,我们把这个神奇的通讯录叫做"字典"(Dictionary)!

2. 基本操作

2.1. 创建字典

# 直接创建字典
student = {"name": "小明", "age": 12, "grade": "六年级"}

# 使用dict()函数创建
person = dict(name="小红", age=11, hobby="画画")

# 创建空字典
empty_dict = {}

2.2. 访问元素

student = {"name": "小明", "age": 12, "grade": "六年级"}

# 使用键访问值
name = student["name"]     # 得到"小明"

# 安全的访问方式(键不存在返回默认值)
age = student.get("age", 0)   # 如果age不存在,返回0

2.3. 添加和修改元素

# 添加新的键值对
student["phone"] = "123-456"   

# 修改已有的键值对
student["age"] = 13

# 批量更新
student.update({
    "email": "xiaoming@example.com",
    "address": "北京"
})

2.4. 删除元素

# 删除指定键值对
del student["phone"]

# 安全删除并返回值
email = student.pop("email", None)    # 如果email不存在,返回None

# 随机删除并返回一个键值对
last_item = student.popitem()

# 清空字典
student.clear()

3. 字典操作

3.1. 遍历字典

student = {"name": "小明", "age": 12, "grade": "六年级"}

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

# 只遍历键
for key in student.keys():
    print(key)

# 只遍历值
for value in student.values():
    print(value)

3.2. 字典推导式

# 创建平方数字典
squares = {x: x**2 for x in range(5)}    # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

# 过滤字典
scores = {"小明": 85, "小红": 92, "小华": 78}
high_scores = {name: score for name, score in scores.items() if score >= 85}

4. 实战示例

4.1. 学生信息管理

# 创建学生信息系统
students = {}

def add_student(name, age, grade):
    students[name] = {
        "age": age,
        "grade": grade,
        "courses": []
    }
    print(f"已添加学生:{name}")

def add_course(name, course):
    if name in students:
        students[name]["courses"].append(course)
        print(f"已为{name}添加课程:{course}")
    else:
        print(f"未找到学生:{name}")

# 使用示例
add_student("小明", 12, "六年级")
add_course("小明", "数学")
add_course("小明", "英语")
print(students)

4.2. 购物车系统

# 创建购物车
cart = {}

def add_to_cart(item, price, quantity=1):
    if item in cart:
        cart[item]["quantity"] += quantity
    else:
        cart[item] = {"price": price, "quantity": quantity}
    print(f"已添加{quantity}{item}")

def calculate_total():
    total = sum(item["price"] * item["quantity"] for item in cart.values())
    return total

# 使用示例
add_to_cart("苹果", 5, 3)
add_to_cart("香蕉", 3, 2)
print(f"总价:{calculate_total()}元")

5.应用场景

5.1. 数据存储

  • 用户信息管理
  • 配置文件存储
  • 缓存系统

5.2. 数据统计

  • 词频统计
  • 成绩统计
  • 投票统计

5.3. 映射关系

  • 数据库记录
  • 状态机转换
  • 多语言翻译

6. 小练习

  1. 创建一个字典来存储你的个人信息(姓名、年龄、城市等)
  2. 编写一个函数,统计一个字符串中每个字符出现的次数
  3. 实现一个简单的通讯录系统,支持添加、删除和查找联系人

7. 交互式练习工具

👉 点击这里开始Python字典交互式练习

8. 进一步学习