繁体   English   中英

如何在python字典中删除键/值对?

[英]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')

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

pop也会返回该值,因此从性能角度(可能忽略不计)和从可读性角度考虑,最好使用del

除此之外,我不认为您可以做得更轻松/更好。

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否则无

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM