Python setdefault() 语法
setdefault() 是 Python 字典的一个方法。如果键存在于字典中,则 setdefault() 返回该键对应的值;如果键不存在于字典中,则 setdefault() 会将该键添加到字典中且设置一个默认值,最后返回其默认值。
语法:
dict.setdefault(key, default=None)说明:
setdefault() 方法接收以下 2 个参数。
key(必选):你要查找的键。default(可选):键不存在时设置的默认值。
setdefault() 方法常用于在访问字典值之前,用于确保键已经存在并具有一个初始值,从而避免 KeyError 异常。
注意: setdefault() 方法可能会修改原始字典(如果键不存在)。
Python setdefault() 摘要
| 使用频率 | 中 |
|---|---|
| 修改原字典 | 是 |
| 官方文档 | 查看 |
| 相关方法 | get()、update() |
Python setdefault() 示例
接下来,我们通过几个简单的例子来讲解 Python setdefault() 方法是如何使用的。
示例 1:setdefault() 查找的键存在
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
result = students.setdefault('Jack')
print(students)
print(result)运行结果如下。
{'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
1001示例 2:setdefault() 查找的键不存在
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
result = students.setdefault('Lily')
print(students)
print(result)运行结果如下。
{'Jack': 1001, 'Lucy': 1002, 'Tony': 1003, 'Lily': None}
None示例 3:setdefault() 带 2 个参数(指定默认值)
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
result = students.setdefault('Lily', 6666)
print(students)
print(result)运行结果如下。
{'Jack': 1001, 'Lucy': 1002, 'Tony': 1003, 'Lily': 6666}
6666示例 4:setdefault() 用于数据分组
data = [('fruit', 'apple'), ('fruit', 'banana'), ('vegetable', 'carrot')]
groups = {}
for category, item in data:
# 如果 category 不存在,则初始化为空列表 [],然后直接追加元素
groups.setdefault(category, []).append(item)
print(groups)运行结果如下。
{'fruit': ['apple', 'banana'], 'vegetable': ['carrot']}分析:
在处理数据分组时,setdefault() 非常优雅。groups.setdefault(category, []) 会确保键存在且对应一个列表,接着调用 .append(item) 直接添加元素,省去了使用 if-else 检查键是否存在的繁琐代码。
