如何删除 python 字典中的 key/value 对?

How to remove a key/value pair in python dictionary?

假设我有这样的字典:

d = {'ben' : 10, 'kim' : 20, 'bob' : 9}

有没有办法从字典中删除像 ('bob',9) 这样的一对? 我已经知道 d.pop('bob') 但即使该值不是 9.

也会删除该对

目前我能想到的唯一方法是这样的:

if (d.get('bob', None) == 9):
    d.pop('bob')

但是有更简单的方法吗?可能根本不使用 if

pop 也是 returns 值,因此在性能方面(尽管可能被忽略)和可读性方面,使用 del.[=13 可能会更好=]

除此之外,我认为 easier/better 你无能为力。

from timeit import Timer


def _del():
    d = {'a': 1}
    del d['a']


def _pop():
    d = {'a': 1}
    d.pop('a')

print(min(Timer(_del).repeat(5000, 5000)))
# 0.0005624240000000613
print(min(Timer(_pop).repeat(5000, 5000)))
# 0.0007729860000003086

你想在这里执行两个操作

1) 你想测试条件 d['bob']==9。 2) 如果第一个答案为真,您想连同值一起删除键。

所以我们不能省略测试部分,它需要使用if,一共。但是我们当然可以一行完成。

d.pop('bob') 如果 d.get('bob')==9 否则 None