从字典中删除项目的最佳方法
在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]
。