python字典浅析(三)

258 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的的第9天

字典键值对的删除

1.通过键删除键值对

可以使用 pop 方法删除一个键值对,并将值返回

值 = 字典.pop(键)
​
>>> codes = {‘beijing’: ‘010’, ‘shanghai’: ‘021’}
>>> codes.pop(‘beijing’)
’010’
>>> codes
{‘shanghai’: ‘021’}

如果 pop 一个不存在的键,则会抛出 KeyError 异常

>>> codes.pop(‘a’)
Traceback (most recent call last):
     File “”, line 1, in
KeyError: ‘a’

如果你不希望异常抛出,可以传递 pop 方法的第二个参数作为默认值。默认值仅在键不存在时生效,此时方法将直接返回这个默认值,且跳过删除操作

值 = 字典.pop(键, 默认值)
​
>>> codes = {‘beijing’: ‘010’, ‘shanghai’: ‘021’}
>>> codes.pop(‘guangzhou’, ‘000’)
’000’

2.通过键删除键值对(del 方法)

del 字典[键]
​
>>> codes = {‘beijing’: ‘010’, ‘shanghai’: ‘021’}
>>> del codes[‘beijing’]
>>> codes
{‘shanghai’: ‘021’}

3.随机删除一个键值对

使用 popitem 随机删除一个键值对,并返回这个键值对的二元组,二元组的第一个元素是键,第二个元素是值

键值二元组 = 字典.popitem()
​
>>> codes = {‘beijing’: ‘010’, ‘shanghai’: ‘021’}
>>> codes.popitem()
(‘shanghai’, ‘021’)
>>> codes
{‘beijing’: ‘010’}

4.清空所有键值对

键值二元组 = 字典.clear()
​
>>> codes = {‘beijing’: ‘010’, ‘shanghai’: ‘021’}
>>> codes.clear()
>>> codes
{}

字典中键值对修改

1.修改键对应的值

字典[键] = 值
​
>>> codes = {‘beijing’: ‘010’}
>>> codes[‘beijing’] = '021’
>>> codes
{‘beijing’: ‘021’}

如果键不存在,则创建键值对

2.用字典批量更新键值对

字典.update(另一字典)
​
>>> codes = {‘beijing’: ‘010’, ‘shanghai’: ‘021’}
>>> codes.update({‘guangzhou’: ‘020’, ‘shanghai’: ‘000’})
>>> codes
{‘beijing’: ‘010’, ‘shanghai’: ‘000’, ‘guangzhou’: ‘020’}

可以看到字典中新增了 'guangzhou': '020' 这个键值对,同时将 'shanghai': '021' 修改为 'shanghai': '000'

什么时候用字典

字典的显著优势是可以通过键快速地查询数据。字典中的元素以键值对的形式存在,使用时通过键来获取和修改值,由于字典内部的特殊实现,字典通过键获取值的效率非常高。

如果我们希望将批量的数据存放起来,并且在需要时能以很高的执行效率来获取其中某个指定的数据,这时就可以使用字典。除此之外,如果我们想在程序中暂时维护一个映射关系,也可以使用字典,因为字典本质上就是一个映射关系。

如,我们可以将城市名和对应的区号保存在字典中,这样就可以通过城市名快速地查询到其区号,而不需要进行遍历。