您的位置:

Python中dictionary.setdefault的使用方法

一、setdefault()函数介绍

setdefault()函数是Python字典(Dictionary)中的一个函数,用于在字典中查找某个键,如果该键不存在,则返回一个默认值并插入到字典中。

当字典中的value为可变对象时,setdefault()函数会在value没有初始化时创建value的对象,避免了value = []的写法引起的编码错误。

二、setdefault()函数的语法

dict.setdefault(key, default=None)

参数解释:

  • key: 字典中要查找的键
  • default: 为键设置的默认值,默认为None

三、setdefault()函数的实例

1. 设置默认值

示例代码:

dict1 = {'name': 'Tom', 'age': 28}
age = dict1.setdefault('age', 18)
sex = dict1.setdefault('sex', 'male')
print("age=", age)  # age=28
print("sex=", sex)  # sex=male
print(dict1)        # {'name': 'Tom', 'age': 28, 'sex': 'male'}

上述代码中,字典中已经有"name"和"age"两个键,当我们调用dict1.setdefault('age', 18)时,由于"age"键已经存在,因此返回28,而调用dict1.setdefault('sex', 'male')时,由于"sex"键不存在,因此将默认值male设置成sex键的值。

2. 给嵌套字典插入默认值

示例代码:

dict2 = {'name': 'Tom', 'info': {'age': 28}}
dict2.setdefault('info', {})
dict2['info'].setdefault('sex', 'male')
print(dict2)  # {'name': 'Tom', 'info': {'age': 28, 'sex': 'male'}}

上述代码中,字典中已经有"name"和一个键为"info"的字典,当我们调用dict2.setdefault('info', {})时,由于"info"键已经存在,因此函数会返回原来键的值,即字典{'age': 28}。然后我们再调用字典的setdefault()函数,为字典插入新键"sex"并设置默认值"male"。

3. 给字典的值初始化

示例代码:

dict3 = {}
dict3.setdefault('name', 'Tom')
dict3.setdefault('score', [])
dict3['score'].append(30)
print(dict3)  # {'name': 'Tom', 'score': [30]}

上述代码中,字典中不存在键"score",因此我们为它设置默认值[],然后将30加入到该键对应的值中。

四、小结

setdefault()函数是Python字典中的一个函数,可以解决在字典中查找某个键是否存在的问题,并且可以在键不存在时返回默认值并将该键插入到字典中。在字典中的值为可变对象时,使用setdefault()函数不仅使代码更加简洁,也可以避免一些编码错误。