key ---> value
info = {}
type({})
dict
访问
键: 值
使用 字典名 访问根据 键 进行访问。
info = {'name': '刘强东', 'age': 45, 'id': 232323232, 'addr': '北京'}
info
{'name': '刘强东', 'age': 45, 'id': 232323232, 'addr': '北京'}
print(info['name'])
print(info['sex']) # 访问不存在的键会报错
刘强东
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-6-0cbb0eea6a56> in <module>
1 print(info['name'])
2
----> 3 print(info['sex']) # 访问不存在的键会报错
KeyError: 'sex'
当不确定字典中是否存在某个 key 而且还要获取其value,可以使用 dic.get('key', 默认值) 方法。
age = info.get('age')
print(age)
# 如果键不存在返回 None 或 设置默认值
mail = info.get('mail')
print(mail)
mail2 = info.get('mail', '122@jingdong.com')
print(mail2)
# 如果 key 已经存在 设置的默认值无效
45
None
122@jingdong.com
修改
info = {'name': '刘强东', 'age': 45, 'id': 232323232, 'addr': '北京'}
info['name'] = '马云'
print(info)
{'name': '马云', 'age': 45, 'id': 232323232, 'addr': '北京'}
添加
info = {'name': '刘强东', 'age': 45, 'id': 232323232, 'addr': '北京'}
info['sex'] = '男性'
print('添加后:', info)
添加后: {'name': '马云', 'age': 45, 'id': 232323232, 'addr': '北京', 'sex': '男性'}
删除
del dic
dic.clear()
# 根据 key 删除
info = {'name': '刘强东', 'age': 45, 'id': 232323232, 'addr': '北京'}
del info['name']
print(info)
del info
print(info)
{'age': 45, 'id': 232323232, 'addr': '北京'}
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-19-c3d2df30c610> in <module>
5
6 del info
----> 7 print(info)
NameError: name 'info' is not defined
info = {'name': '刘强东', 'age': 45, 'id': 232323232, 'addr': '北京'}
info.clear()
print('删除后:', info)
删除后: {}
字典的常用操作
<1> len() 获取键值对的个数
info = {'name': '刘强东', 'age': 45,
'id': 232323232, 'addr': '北京'}
print(len(info)) # 键值对的个数
4
<2> 通过 字典名 获得字典的信息
dic.key()
dic.values()
dic.items()
# keys
keys = info.keys()
print(keys)
dict_keys(['name', 'age', 'id', 'addr'])
# value
values = info.values()
print(values)
dict_values(['刘强东', 45, 232323232, '北京'])
# (keys value) 返回的是元组的字典
items = info.items()
print(items)
dict_items([('name', '刘强东'), ('age', 45), ('id', 232323232), ('addr', '北京')])
info = {'name': '刘强东', 'age': 45,
'id': 232323232, 'addr': '北京'}
for key, value in info.items():
print(key,'===>',value)
name ===> 刘强东
age ===> 45
id ===> 232323232
addr ===> 北京
字典解析
创建一个班级的分数
from random import randint
grades = {'Student{}'.format(i):randint(50,100) for i in range(1, 21)}
print(grades)
{'Student1': 83, 'Student2': 76, 'Student3': 64, 'Student4': 55, 'Student5': 74, 'Student6': 59, 'Student7': 64, 'Student8': 76, 'Student9': 90, 'Student10': 58, 'Student11': 55, 'Student12': 76, 'Student13': 69, 'Student14': 79, 'Student15': 64, 'Student16': 94, 'Student17': 98, 'Student18': 50, 'Student19': 63, 'Student20': 98}
筛选出高于 90 分的人
d = {k:v for (k, v) in grades.items() if v >= 90}
print(len(d))
print(d)
4
{'Student9': 90, 'Student16': 94, 'Student17': 98, 'Student20': 98}
e = [v for (k, v) in grades.items() if v >= 90]
print(e)
f = [v for v in grades.values() if v >= 90]
print(f)
[90, 94, 98, 98]
[90, 94, 98, 98]
网友评论