Skip to main content

Python Dictionary setdefault() Function

The Dictionary setdefault() method returns the value for key if key is in the dictionary. If not, it inserts key with a value of default and returns default.

Syntax

my_dictionary.setdefault(key, default)

setdefault() Parameters

Python Dictionary setdefault() method parameters:

ParameterConditionDescription
keyRequiredThe key to be searched in the Dictionary
defaultOptionalThe value to be inserted if the key is not found in the dictionary. If not provided, the default value is None.

setdefault() Return Value

Python Dictionary setdefault() function behaves differently according to parameters used:

  • If the key is found in the dictionary, setdefault() returns the value associated with the key.
  • If the key is not found and a default value is provided, setdefault() inserts the key with the default value into the dictionary and returns the default value.
  • If the key is not found and no default value is provided, setdefault() inserts the key with a None value into the dictionary and returns None.

Examples

Example 1: setdefault() method when key is in the dictionary

If key is in the dictionary, the setdefault() method returns the value for key (no matter what you pass in as default, since a pair key-value exists in the dictionary!)

For example, the key is present and default is not specified:

my_dict = {'name': 'Tom', 'age': 25}
returned = my_dict.setdefault('name')

print(my_dict) # Output: {'name': 'Tom', 'age': 25}
print(returned) # Output: Tom

output

{'name': 'Tom', 'age': 25}
Tom

For example, when the key is present and default is specified, the default value is ignored:

my_dict = {'name': 'Tom', 'age': 25}
returned = my_dict.setdefault('name', 'Ryan')

print(my_dict) # Output: {'name': 'Tom', 'age': 25}
print(returned) # Output: Tom

output

{'name': 'Tom', 'age': 25}
Tom

Example 2: setdefault() method when key is not in the dictionary

If key is not in the dictionary, the method inserts key with a value of default and returns default.

my_dict = {'name': 'Tom', 'age': 25}
returned = my_dict.setdefault('job', 'Developer')

print(my_dict) # Output: {'name': 'Tom', 'age': 25, 'job': 'Developer'}
print(returned) # Output: Developer

output

{'name': 'Tom', 'age': 25, 'job': 'Developer'}
Developer

Example 3: setdefault() method when key is not in the dictionary without default value

If key is not in the dictionary and default is not specified, the method inserts key with a value None and returns None.

my_dict = {'name': 'Tom', 'age': 25}
returned = my_dict.setdefault('job')

print(my_dict) # Output: {'name': 'Tom', 'age': 25, 'job': None}
print(returned) # Output: None

output

{'name': 'Tom', 'age': 25, 'job': None}
None