Python 字典 setdefault() 方法

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 检查键是否存在的繁琐代码。

上一篇: fromkeys()

下一篇: copy()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号