文章目录
1. setdefault()方法
Python 字典 setdefault() 函数和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
setdefault() 方法语法:
dic.setdefault(key, default=None)
- 如果键在字典中,返回这个键所对应的值。
- 如果键不在字典中,向字典 中插入这个键,并且以default为这个键的值,并返回 default。default的默认值为None
2. setdefault()方法构造value值为列表/字典的字典
2.1 构造value值为列表的字典
dic.setdefault(key,[]).append(value)
示例如下:
dic = {}
dic.setdefault('a',[]).append(1)
dic.setdefault('a',[]).append(2)
print(dic)
# {'a': [1, 2]}
2.2 构造value值为字典的字典
dic.setdefault(key,{})[value] =1
示例如下:
dic = {}
dic.setdefault('b',{})['f']=1
dic.setdefault('b',{})['h']=1
dic.setdefault('b',{})['g']=1
print(dic)
# {'b': {'f': 1, 'h': 1, 'g': 1}}
3. setdefault() 和 get() 方法比较
3.1 获取键值
get()方法和setdefault()两种方法的作用都是获取键的键值,如果键存在于字典中,则返回键值;如果字典中不存在这个键,则返回一个默认值(这个值默认是None,但可以自行设定),如下:
d = {"x":1, "y":2}
print(d.get("a")) # None
print(d.get("b",9)) # 9
d = {"x":1, "y":2}
print(d.setdefault("a")) # None
print(d.setdefault("b",9)) # 9
可以看到在获取键值方面, get()方法和setdefault()方法都可以用一行代码实现。
3.2 修改value中的列表值
假设现在有一个学生字典, 字典中包含学生的 name, age, hobby信息。字典结构如下:
student_dic = {'name':'张三', 'age': 10, 'hobby': ['唱歌', '跳舞']}
假设我们要给学生添加爱好信息,但是我们不知道hobby这个键存不存在.
三步法:
# 1)从字典中取到hobby对应的值,如果没有hobby这个键,则设置这个值为空列表
hobbies = student_dic.get('hobby', []) # get()方法
hobbies = student_dic.setdefault('hobby', []) # setdefault()方法
# 2)对hobbies值进行更新操作
hobbies.append('打球')
# 3)将更新后的值赋值回字典
student_dic['hobby'] = hobbies
# print(student_dic)
# {'name': '张三', 'age': 10, 'hobby': ['唱歌', '跳舞', '打球']}
一步法:
student_dic.get('hobby', []).append('打球') # get()方法
student_dic.setdefault('hobby', []).append('打球') # setdefault()方法
# print(student_dic)
# {'name': '张三', 'age': 10, 'hobby': ['唱歌', '跳舞', '打球']}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/162856.html