Python dictionary fromkeys() Method



The Python dictionary fromkeys() method is used to create a new dictionary from the given iterable as keys and with the value provided by the user. Here the keys can be in the form of set, tuple, string, list or any other iterables using which we can create a dictionary.

Iterable is an object that can iterate (loop) over. The elements from the iterable will be the keys from the dictionary.

Syntax

Following is the syntax of the Python dictionary fromkeys() method −

dict.fromkeys(seq, [value])

Parameters

This method accepts two parameters as shown below:

  • seq: A sequence is an iterable object which will use keys to form a new dictionary.

  • value (optional): It is a value against each key of the dictionary. If no value is specified, then it's default value is None.

Return Value

This method returns a new dictionary.

Example

If the values of the dictionary is not provided, then this method returns the default value 'None'.

The following example shows the usage of Python dictionary fromkeys() method. Here we provided the keys: 'name', 'age' and 'sex'. The values are not specified to the keys provided. Hence, the default value None is assigned to each key using the fromkeys() method.

seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
print ("New Dictionary : %s" %  str(dict))

When we run above program, it produces following result −

New Dictionary : {'name': None, 'age': None, 'sex': None}

Example

If we pass a value as an argument to this method, it returns the same value against each key.

Now, we are passing the value '10' as an argument to the fromkeys() method. As a result, this value is specified against each key of the dictionary.

seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
# providing a value 10
value = 10
dict = dict.fromkeys(seq, value)
print ("New Dictionary : %s" %  str(dict))

Following is an output of the above code −

New Dictionary : {'name': 10, 'age': 10, 'sex': 10}

Example

In the code below a list is used as the value of the dictionary. The iterable list is a mutable object, it means that it can be modified. Here the list value is updated using the append() function. The keys are then assigned with the updated values along with the previous provided value. It is because each element points to the same address in the memory.

the_keys = {'b', 'c', 'd', 'f', 'g' }
# the list
value = [5]
consonants = dict.fromkeys(the_keys, value)
print('The consonants are: ', consonants)
# updating the value of the list
value.append(10)
print('The updated dictionary is: ',consonants)

Output of the above code is as follows −

The consonants are:  {'c': [5], 'b': [5], 'f': [5], 'g': [5], 'd': [5]}
The updated dictionary is:  {'c': [5, 10], 'b': [5, 10], 'f': [5, 10], 'g': [5, 10], 'd': [5, 10]}

Example

In the following example a dictionary is created where a string is used as a key parameter. Therefore, using the fromkeys() method, each character of the string will act as a key in the resultant dictionary. The value 'King' is assigned to all the keys.

Animal = 'Lion'
value = 'King'
print('The string value is: ', value)
d = dict.fromkeys(Animal, value)
print('The dictionary is: ', d)

While executing the above code we get the following output −

The string value is:  King
The dictionary is:  {'L': 'King', 'i': 'King', 'o': 'King', 'n': 'King'}
python_dictionary.htm
Advertisements