python3中的setdefault方法如何用
更新时间:2023-09-09Python 3中setdefault方法的概述
setdefault方法是Python 3中字典对象的一个内置方法。它的作用是在字典中获取指定键对应的值,如果该键不存在,则返回默认值,并将该键和默认值添加到字典中。下面是该方法的语法:
dict.setdefault(key, default=None)
其中,key表示要查找的键,default表示如果该键不存在则返回默认值,如果没有指定默认值,则返回None。
使用setdefault方法创建字典项
下面的示例演示了如何使用setdefault方法来创建一个字典项:
# 创建一个空字典 my_dict = {} # 使用setdefault方法创建一个键值对,并将其添加到字典中 my_dict.setdefault('name', 'John Doe') print(my_dict) # 输出:{'name': 'John Doe'}
在上面的示例中,我们首先创建一个空字典,然后使用setdefault方法来创建一个键值对,并将其添加到字典中。由于该字典为空,所以'name'键不存在,因此setdefault方法会将该键和默认值'John Doe'添加到字典中。
使用setdefault方法更新字典项
setdefault方法还可以用于更新字典项,如果指定的键已经存在,则不会改变该键对应的值。下面的示例演示了如何使用setdefault方法来更新字典项:
# 创建一个字典 my_dict = {'name': 'John Doe', 'age': 30} # 使用setdefault方法更新一个键值对 my_dict.setdefault('age', 40) print(my_dict) # 输出:{'name': 'John Doe', 'age': 30}
在上面的示例中,我们首先创建一个字典,然后使用setdefault方法来更新一个键值对。由于'age'键已经存在,因此setdefault方法不会改变该键对应的值。
使用setdefault方法实现默认字典
setdefault方法还可以结合lambda函数和列表推导式来实现默认字典,即如果指定的键不存在,则返回默认值。下面的示例演示了如何使用setdefault方法结合lambda函数和列表推导式来实现默认字典:
# 创建一个空字典 my_dict = {} # 定义默认值列表和lambda函数 default_vals = ['Unknown', 0, False] get_default = lambda: [d() for d in default_vals] # 使用setdefault方法和列表推导式来创建默认字典 for name in ['Alice', 'Bob', 'Charlie']: my_dict.setdefault(name, get_default()) print(my_dict) # 输出:{'Alice': ['Unknown', 0, False], 'Bob': ['Unknown', 0, False], 'Charlie': ['Unknown', 0, False]}
在上面的示例中,我们首先创建一个空字典和一个默认值列表default_vals,以及一个lambda函数get_default,该函数返回一个由default_vals中每个函数调用产生的值组成的列表。然后我们使用for循环和setdefault方法来创建默认字典,如果特定的键不存在,则使用get_default函数返回的默认值。