上QQ阅读APP看书,第一时间看更新
2.12.4 删除
dict元素的删除有两种方法,一种是用del函数,一种是用pop方法。
用del函数,我们可以删除指定的dict中的元素。
airports = { "PVG": "上海浦东国际机场", "PEK": "北京首都国际机场" } del(airports['PVG']) print(airports)
执行结果如下:
{'PEK': '北京首都国际机场'}
要留意的是,如果指定的key不存在,del函数会执行出错。
airports = { "PVG": "上海浦东国际机场", "PEK": "北京首都国际机场" } del(airports['CAN'])
执行结果如下:
KeyError: 'CAN'
要避免这种类型的错误,我们可以加上如下判断条件。
airports = { "PVG": "上海浦东国际机场", "PEK": "北京首都国际机场" } airport_code = 'CAN' if airport_code in airports: del(airports[airport_code])
删除dict元素的另外一种方式是通过dict类型对象的pop方法。
airports = { "PVG": "上海浦东国际机场", "PEK": "北京首都国际机场" } airport_code = 'CAN' if airport_code in airports: airports.pop(airport_code)
与del函数有所不同的是,用pop方法删除元素的时候,被删除的元素的value会被方法返回。
airports = { "PVG": "上海浦东国际机场", "PEK": "北京首都国际机场" } airport_code = 'PVG' airport_name = airports.pop(airport_code) print(airport_name)
执行结果如下:
上海浦东国际机场
dict还支持clear方法,用于把所有元素清除。
airports = { "PVG": "上海浦东国际机场", "SZX": "深圳宝安国际机场" } print(airports) airports.clear() print(airports)
执行结果如下:
{'PVG': '上海浦东国际机场', 'SZX': '深圳宝安国际机场'} {}
要清空dict的所有元素,我们也可以通过如下简单的赋值完成。
airports = { "PVG": "上海浦东国际机场", "SZX": "深圳宝安国际机场" } print(airports) airports = {} print(airports)
执行结果如下:
{'PVG': '上海浦东国际机场', 'SZX': '深圳宝安国际机场'} {}