python每日一练
字典KeyError
添加字典key
对字典使用函数
字典过滤
字典KeyError
如下代码会报错
d = {“姓名”: “小明”, “性别”: “男”}
print(d[“男”])
你知道会报什么错误吗?为什么会报这个错误?
如果想得到"男"该怎么修正呢?
提示:本问题可以直接运行代码,看下报错信息,观察、解释一下
会有如下报错信息
KeyError: ‘男’ 答案:
• 字典中没有key==‘男’,‘男’是一个字典的值
• 如果想访问’男’,可以用d[“性别”]
解释:
• 如果一个key在字典中不存在,却访问了它,就会报错说KeyError
添加字典key
给如下代码新增一对key:value,key是c,value是3
d = {“a”: 1, “b”: 2}
最终产生如下输出
{‘a’: 1, ‘c’: 3, ‘b’: 2}
提示:字典的Key是无序的,如果输出的c在b前面,不用管它
答案:
d = {“a”: 1, “b”: 2}
d[“c”] = 3
print(d)
解释:
• 字典最直观的添加Key的方式,就是dict[key]=value
对字典使用函数
计算如下字典的所有value的数字的和
d = {“a”: 1, “b”: 2, “c”: 3}
最终产生如下输出
6
提示:
• d.values()可以返回一个字典所有的values
• sum()函数可以对一个序列直接求和
答案
d = {“a”: 1, “b”: 2, “c”: 3}
print(sum(d.values()))
解释:
• d.values()返回一个类似list的dict_values对象
• sum()函数可以直接对dict_values对象求和
字典过滤
移除如下字典中所有value大于1的key:value对
d = {“a”: 1, “b”: 2, “c”: 3}
过滤后,产生如下输出
{‘a’: 1}
提示:
• 可以使用字典推导式
• 使用d.items()可以访问当前字典的每个key:value对
答案
d = {“a”: 1, “b”: 2, “c”: 3}
d = {key: value for key, value in d.items() if value <= 1}
print(d)
解释:
• 字典推导式的形式,形如 {key:value for 循环 if 条件} 的形式
• d.items()会返回每个key:value对