一、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()函数不仅使代码更加简洁,也可以避免一些编码错误。