How can I remove a key from a Python dictionary?
How can I remove a key from a Python dictionary?
To delete a key regardless of whether it is in the dictionary, use the two-argument form of dict.pop()
:
my_dict.pop(key, None)
This will return my_dict[key]
if key
exists in the dictionary, and None
otherwise. If the second parameter is not specified (i.e. my_dict.pop(key)
) and key
does not exist, a KeyError
is raised.
To delete a key that is guaranteed to exist, you can also use:
del my_dict[key]
This will raise a KeyError
if the key is not in the dictionary.
Specifically to answer is there a one line way of doing this?
if key in my_dict: del my_dict[key]
…well, you asked π
You should consider, though, that this way of deleting an object from a dict
is not atomicβit is possible that key
may be in my_dict
during the if
statement, but may be deleted before del
is executed, in which case del
will fail with a KeyError
. Given this, it would be safest to either use dict.pop
or something along the lines of
try:
del my_dict[key]
except KeyError:
pass
which, of course, is definitely not a one-liner.
How can I remove a key from a Python dictionary?
How can I remove a key from a Python dictionary?
It took me some time to figure out what exactly my_dict.pop(key, None)
is doing. So Ill add this as an answer to save others googling time:
pop(key[, default])
If key is in the dictionary, remove it and return its value, else
return default. If default is not given and key is not in the
dictionary, aKeyError
is raised.