Dict Set Default Tutorial Examples

(date: 2025-10-25)

难度: 2

时长: 30 min

这是Dict Set Default Tutorial 的代码记录。

场景1:按类别分组

# 将学生按班级分组
students = [('Alice', 'A'), ('Bob', 'B'), ('Charlie', 'A')]
classes = {}

for name, class_name in students:
    classes.setdefault(class_name, []).append(name)

# 结果: {'A': ['Alice', 'Charlie'], 'B': ['Bob']}

场景2:计数

# 统计单词频率
words = ['apple', 'banana', 'apple', 'orange']
counter = {}

for word in words:
    counter.setdefault(word, 0) += 1

# 结果: {'apple': 2, 'banana': 1, 'orange': 1}

场景3:构建嵌套结构

# 构建城市-人名的嵌套字典
data = [('London', 'Alice'), ('Paris', 'Bob'), ('London', 'Charlie')]
city_people = {}

for city, name in data:
    city_people.setdefault(city, {})[name] = True

# 结果: {'London': {'Alice': True, 'Charlie': True}, 'Paris': {'Bob': True}}

场景4:提供默认配置

# 填充配置默认值
user_config = {'color': 'blue'}  # 用户只提供了颜色

defaults = {'color': 'red', 'size': 'medium', 'theme': 'light'}

# 用默认值填充缺失的配置项,但不覆盖现有值
for key, value in defaults.items():
    user_config.setdefault(key, value)

# 结果: {'color': 'blue', 'size': 'medium', 'theme': 'light'}

每个示例都展示了setdefault如何用一行代码优雅地处理"检查-初始化-使用"的模式。