字典
燃烧一个人的灵魂,正是对生命的爱,那是至死方休 –佚名
字典是一种用来存放若干键值对的数据类型.
什么是键值对?键值对就是两个对象,其中一个是用来做定位的数据,叫做键(key),另一个要存放的数据叫做值(Value)在字典中,键值对作为一个整体被存放,我们可以通过键来快速获取到对应的值
在 Python 中字典用花括号{}来表示,键值对以键:值得方式写入花括号,有多个键值对得时候,用逗号隔开
类似
{
'name':'Tom'
'sex':'男'
}
使用的时候通过 name 来找到值 Tom
字典使用
字典的创建
- 创建一个空的字典
# 字典 = {}
empty_dict = {}
# 结果 {}
- 创建包含键值对的字典
# 字典 = {键1:值 1,键2:值2,...键N:值N}
# 如城市何其对应得电话区号
codes = {
'beijing':'010',
'tianjin':'012'
}
字典键值对得添加
- 向字典中增加键值对
# 字典
# 字典[键] = 值
codes = {
'beijing':'010',
'tianjin':'012'
}
codes['shanghai'] = '013'
# 结果
# {'beijing':'010','tinajin':'012','shanghai':'013'}
使用这种方式得时候,若字典中没有这个键,则会创建这个键值对,若字典中原本已有这个键,则是修改键所对应的值
键值对得获取
- 通过键获取值
# 值 = 字典[键]
codes = {
'beijing':'010',
'tianjin':'012'
}
result = codes['beijing']
# 结果 010
# 但是要是没有这个属性得话, 则会抛出异常比如 codes['haha']
- 通过键获取值(get 方法),也可以设置默认值要是没有得话就从默认值取
# 值 = 字典.get(键)
# 值 = 字典.get(键,值)
codes = {
'beijing':'010',
'tianjin':'012'
}
result = codes.get('beijing')
# 结果就是010
result2 = codes.get('haha')
# 结果就是None
result3 = codes.get('hehe','开心')
# 这样结果就是开心
判断字典是否包含某个键
- in
codes = {
'beijing':'010',
'tianjin':'012'
}
if 'tianjin' in codes:
print('有这个属性')
获取键得列表
- keys
# 键得列表 = 字典.keys()
codes = {
'beijing': '010',
'tianjin': '012'
}
for content in codes.keys():
print(content)
# 结果
# beijing
# tianjin
获取所有值
# 值得列表 = 字典.values()
codes = {
'beijing': '010',
'tianjin': '012'
}
for content in codes.values():
print(content)
# 值
# 010 012
获取所有键值对得列表
# 值得列表 = 字典.items()
codes = {
'beijing': '010',
'tianjin': '012'
}
for index, content in codes.items():
print(content)
print(index)
# 结果
# 010
# beijing
# 012
# tianjin
字典键值对得删除
- 通过键删除键值对 pop
可以使用 pop 方法删除一个键值对,并将其值返回
# 值 = 字典.pop(键)
codes = {
'beijing': '010',
'tianjin': '012'
}
result = codes.pop('beijing')
print(codes)
print(result)
# 结果
# {'tianjin': '012'}
# 010
但是如果 pop 一个不存在得值,则会抛出 KeyError 异常
为了避免抛出异常,可以通过传递 pop 方法的第二个参数作为默认值,默认值仅在键不存在时生效,此时方法将直接返回这个默认值,且跳过删除操作
codes = {
'beijing': '010',
'tianjin': '012'
}
result = codes.pop('guangzhou', '广州')
print(codes)
print(result)
# 结果
# {'beijing': '010', 'tianjin': '012'}
# 广州
- 通过键删除键值(del 方法)
# del 字典[键]
codes = {
'beijing': '010',
'tianjin': '012'
}
del codes['tianjin']
print(codes)
# 结果
# {'beijing': '010'}
- 随机删除一个键值对,使用 popitem
使用 popitem 随机删除一个键值对,并返回这个键值对得二元组,二元组得第一个元素是键,第二个元素是值
# 键值二元组 = 字典.popitem()
codes = {
'beijing': '010',
'tianjin': '012',
'shanghai': '013'
}
codes.popitem()
print(codes)
- 清空所有键值对
# 键值二元组 = 字典.clear()
codes = {
'beijing': '010',
'tianjin': '012',
'shanghai': '013'
}
codes.clear()
print(codes)
# 结果{}
字典中对值修改
- 修改键对应的值
# 字典[键] = 值
codes = {
'beijing': '010',
'tianjin': '012',
'shanghai': '013'
}
codes['shanghai'] = '我修改了'
print(codes)
# 结果
# {'beijing': '010', 'tianjin': '012', 'shanghai': '我修改了'}
- 用字典批量更新键值对
# 字典.update(另一字典)
codes = {
'beijing': '010',
'tianjin': '012',
'shanghai': '013'
}
codes.update({
'beijing': '010',
'tianjin': '012',
'shanghai': '更新了'
})
print(codes)
# 结果
# {'beijing': '010', 'tianjin': '012', 'shanghai': '更新了'}