Check If a Key/Value Exists in a Dictionary in Python
This article explains how to check if a key, value, or key-value pair exists in a dictionary (dict
) in Python.
You can also iterate over a dictionary using the values()
and items()
methods with a for
loop. For more details, see the following article:
Check If a Key Exists in a Dictionary: in
To check whether a dictionary contains a specific key, use the in
operator. Use not in
to check that a key is missing.
d = {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}
print('key1' in d)
# True
print('val1' in d)
# False
print('key4' not in d)
# True
You could also write xxx in d.keys()
, but this is generally unnecessary because in
checks keys by default.
The has_key()
method was available in Python 2 but was removed in Python 3. Use the in
operator instead.
To retrieve a value from a key, use bracket notation (dict[key]
):
print(d['key1'])
# val1
If the key doesn't exist, this raises a KeyError
. To avoid that, use the get()
method, which returns None
by default or a value you specify:
# print(d['key4'])
# KeyError: 'key4'
print(d.get('key4'))
# None
To add or update an item, use assignment (dict[key] = value
). This will overwrite the value if the key already exists. If you only want to add a value when the key is missing (without overwriting an existing one), use the setdefault()
method:
Check If a Value Exists in a Dictionary: in
, values()
To check whether a specific value exists in a dictionary, use the in
operator with the values()
method. Use not in
to check for absence.
d = {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}
print('val1' in d.values())
# True
print('val4' in d.values())
# False
print('val4' not in d.values())
# True
To find the key associated with a given value, see the following article:
Check If a Key-Value Pair Exists in a Dictionary: in
, items()
To check whether a specific key-value pair exists in a dictionary, use the in
operator with the items()
method. Specify the pair as a tuple (key, value)
. Use not in
to check that the pair is absent.
d = {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}
print(('key1', 'val1') in d.items())
# True
print(('key1', 'val2') in d.items())
# False
print(('key1', 'val2') not in d.items())
# True