如何删除 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
假设我有这样的字典:
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