Skip to content

从字典中移除项 (键:值)

del

del 关键字可用于移除 键: 值 对。

python
>>> d = {"yr": 20, "name": "Ed",
...       18: True}
>>> del d["name"]
>>> d
{'yr': 20, 18: True}

clear()

clear() 方法可用于清除字典的所有值。

python
>>> d = {"yr": 20, "name": "Ed",
...       18: True}
>>> d.clear()
>>> d
{}

pop()

pop(key[, default]) 方法可用于移除 键: 值 对。

如果键在字典中不存在,该方法返回用户提供的参数 default 的值。如果没有提供 default 且键不存在,则引发 KeyError

python
>>> d = {"yr": 20, "name": "Ed",
...       18: True}
>>> d.pop("name")
'Ed'
>>> d
{'yr': 20, 18: True}

>>> d.pop("name") # 再次 pop 会报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'name'

>>> d.pop("name", "Punk") # 提供默认值,键不存在时返回默认值
'Punk'

popitem()

popitem() 可用于以 LIFO(后进先出)顺序破坏性地迭代字典,移除并返回一个 (键, 值) 对。在 Python 3.7+ 中,它移除最后插入的项。在 3.7 之前,移除任意项。

python
>>> d = {"yr": 20, "name": "Ed",
...       18: True}
>>> d.popitem() # 移除最后插入的 (18, True)
(18, True)
>>> d.popitem() # 移除 'name': 'Ed'
('name', 'Ed')
>>> d.update({"name": "py"})
>>> d
{'yr': 20, 'name': 'py'}
>>> d.popitem() # 移除 'name': 'py'
('name', 'py')
>>> d.popitem() # 移除 'yr': 20
('yr', 20)
>>> d
{}