Python pop() 语法
pop() 是 Python 字典的一个方法,它用于删除字典中某个键值对。该方法会修改原字典,并且返回已删除键对应的值。
语法:
dict.pop(key, default)说明:
pop() 方法接受以下 2 个参数。
key(必选):你要删除的键。default(可选):当键不存在时,返回的值。
如果键不存在且未提供默认值,则 pop() 方法会引发 KeyError 异常。
提示: 列表也有类似的 pop() 方法,另请参阅:Python 列表 pop() 方法。
Python pop() 摘要
| 使用频率 | 中 |
|---|---|
| 修改原字典 | 是 |
| 时间复杂度 | O(1) |
| 官方文档 | 查看 |
| 相关方法 | popitem()、clear() |
Python pop() 示例
接下来,我们通过几个简单的例子来讲解 Python pop() 方法是如何使用的。
示例 1:pop() 只有 1 个参数
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
result = students.pop('Lucy')
print(students)
print(result)运行结果如下。
{'Jack': 1001, 'Tony': 1003}
1002分析:
如果键存在,则 pop() 方法会返回被删除键对应的值。如果键不存在,则 Python 会直接报错(抛出 KeyError 异常),请看下面例子。
示例 2:pop() 删除的键不存在
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
result = students.pop('Lily')
print(students)
print(result)运行结果如下。
(报错)KeyError: 'Lily'示例 3:pop() 带 2 个参数
students = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
result = students.pop('Lucy', 6666)
print(students)
print(result)运行结果如下。
{'Jack': 1001, 'Tony': 1003}
1002分析:
students.pop('Lucy', 6666) 表示如果 'Lucy' 这个键不存在时,就会使用 6666 作为返回值。但事实是,这里的 'Lucy' 是存在的,所以返回的是 'Lucy' 键对应的值(即 1002)。
如果将 students.pop('Lucy', 6666) 改为 students.pop('Lily', 6666),再次运行后结果如下:
6666示例 4:get() 与 pop() 链式调用
data = {
'user': {
'name': 'Alice',
'id': 'A001'
},
'status': 'active'
}
# 删除嵌套字典中的键
id_value = data.get('user', {}).pop('id', 'N/A')
print(id_value)
print(data)运行结果如下。
A001
{'user': {'name': 'Alice'}, 'status': 'active'}分析:
在上面例子中,我们首先使用 get() 获取嵌套字典,然后再调用 pop() 可安全地删除嵌套键。如果外层键(如 'user')不存在,则 get() 返回空字典,从而避免 KeyError 异常。
pop() 与 popitem() 的区别
pop() 和 popitem() 这两个方法看着很像,但它们之间有着本质上的区别。
pop():删除的是指定的键值对,然后返回的是已删除键对应的值。popitem():删除的是最后一个键值对,然后以元组方式返回被删除的键值对。
