从字典中删除项目的最佳方法

79 投票
5 回答
59334 浏览
提问于 2025-04-16 16:00

在Python中,有至少两种方法可以通过键从字典中删除一个项目。

d = {"keyA": 123, "keyB": 456, "keyC": 789}

#remove via pop
d.pop("keyA")

#remove via del
del d["keyB"]

这两种方法都会把字典中的这个项目删除。

我想知道这两种方法有什么不同,以及在什么情况下我应该使用其中一种方法。

5 个回答

13

大多数情况下,最有用的其实是:

d.pop("keyC", None)

这个方法会从字典中删除指定的键,但不会因为这个键不存在而报错(也就是不会出现KeyError)。

而且,这个表达式还很方便地返回了这个键对应的值,如果没有这个值的话,就返回None

22

pop 会返回被删除的键的值。
简单来说,d.pop(key) 的意思是 x = d[key]; del d[key]; return x

  • 当你需要知道被删除的键的值时,使用 pop
  • 如果不需要这个值,就用 del
111
  • 如果你想获取被移除的项目,可以用 d.pop,比如 item = d.pop("keyA") 这样。

  • 如果你只是想从字典中删除一个项目,可以使用 del

  • 如果你想删除一个项目,但又不想在键不在字典里的时候报错,可以这样写:if thekey in thedict: del thedict[thekey]

撰写回答