Python dictionary fromkeys()
method is used to create a dictionary from the given keys (keys can be string, list, tuple, set e.t.c). It is sometimes necessary to create a dictionary from the given keys and this keys value might be provided in the form of iterables. Python provides us with different methods for the dictionary iterable, these methods would be useful for handling dictionary-related issues.
In this article, I will explain how to create a dictionary from keys by using a Python dictionary fromkeys()
method
All dictionary methods are available on the dictionary methods page.
Quick examples of Python dictionary fromkeys()
Following are the quick examples of Python Dictionary fromkeys()
.
# Example 1: Create a dictionary using fromkeys()
courses={"Spark","PySpark","Hadoop","Python"}
value1="language"
dictionary=dict.fromkeys(courses, value1)
# Example 2: Create dictionary with no value parameter
dictionary=dict.fromkeys(courses)
# Example 3: Using string as a key parameter
course = 'python'
value1 = 'character'
dictionary= dict.fromkeys(course, value1)
# Example 4: Create a dictionary using fromkeys()
courses=["Spark","PySpark","Hadoop","Python"]
value1="language"
dictionary=dict.fromkeys(courses, value1)
# Example 5: Create a dictionary pass the list as a value parameter in fromkeys()
courses=["Spark","PySpark","Hadoop","Python"]
dictionary=dict.fromkeys(courses, ['language'])
value1.append('technology')
# Example 6: Create a dictionary using dictionary comprehension
courses=["Spark","PySpark","Hadoop","Python"]
value1=['language']
dictionary={key: list(value1) for key in courses}
print("dictionary:", dictionary)
value1.append('technology')
print("new dictionary:", dictionary)
1. Syntax of the fromkeys()
Following is the syntax of the fromkeys().
# Syntax of fromkeys()
dict.fromkeys(sequence,value)
1.2 fromkeys() method Parameters
fromkeys()
method allows two parameters:
- Sequence: A sequence is an iterable object which will use as key for the new dictionary.
- Value: Is a value of each key, it defaults to
None
and optional.
1.3 Return value of Python Dictionary fromkeys()
The fromkeys()
method returns a new dictionary with the given iterable object as the keys of the dictionary and value with a specific value to the method.
2. Usage of Python Dictionary fromkeys()
Python dictionary fromkeys() creates a new dictionary from the given iterable objects such as string
, list
, tuple
, and set
as keys and with a specified value. If no value is specified to value
param, the values of keys are set to None
by default.
# Create a dictionary using fromkeys()
courses ={"Spark","PySpark","Hadoop","Python"}
dictionary=dict.fromkeys(courses,'language')
print(dictionary)
# Output:
{'Spark': 'language', 'PySpark': 'language', 'Hadoop': 'language', 'Python': 'language'}
This creates a dictionary using the fromKeys()
method where the values from courses
list used as keys and language
as value for all elements in dict.
2.1 Default Behaviour sets None Value
In case you do not want to set any specific value to the dictionary keys, do not specify the value param, this by default set the value None
for all dictionary elements.
# Create dictionary with no value parameter
courses={"Spark","PySpark","Hadoop","Python"}
dictionary=dict.fromkeys(courses)
print(dictionary)
# Output:
{'Spark': None, 'PySpark': None, 'Hadoop': None, 'Python': None}
3. Use string as a key Parameter of fromkeys()
Create a dictionary using a string as a key parameter by using fromkeys() method. By using String, each character in the String will be converted to a key.
# Create a dictionary using a string as a key parameter
course = 'python'
value1 = 'character'
dictionary= dict.fromkeys(course, value1)
print(dictionary)
# Output:
{'p': 'character', 'y': 'character', 't': 'character', 'h': 'character', 'o': 'character', 'n': 'character'}
4. Use list to value Parameter
Let’s see an example of assigning list to a value param. Python dictionary fromkeys() can also pass list( mutable object) as the default value. However, in this situation, an in-depth copy of the dictionary will create, which means that if we append a value to the original list, which will updates in all key values. This is because each element has a reference to the same object(points to the same object in the memory).
# Create a dictionary pass the list as a value parameter in fromkeys()
courses=["Spark","PySpark","Hadoop","Python"]
value1=['language']
dictionary=dict.fromkeys(courses, value1)
print("dictionary:", dictionary)
value1.append('technology')
print("new dictionary:", dictionary)
Yields below output
dictionary: {'Spark': ['language'], 'PySpark': ['language'], 'Hadoop': ['language'], 'Python': ['language']}
new dictionary: {'Spark': ['language', 'technology'], 'PySpark': ['language', 'technology'], 'Hadoop': ['language', 'technology'], 'Python': ['language', 'technology']}
To overcome above deep copy problem, we can use dictionary comprehension.
# Create a dictionary using dictionary comprehension
courses=["Spark","PySpark","Hadoop","Python"]
value1=['language']
dictionary={key: list(value1) for key in courses}
print("dictionary:", dictionary)
value1.append('technology')
print("new dictionary:", dictionary)
Yields below output
dictionary: {'Spark': ['language'], 'PySpark': ['language'], 'Hadoop': ['language'], 'Python': ['language']}
new dictionary: {'Spark': ['language'], 'PySpark': ['language'], 'Hadoop': ['language'], 'Python': ['language']}
Here, a new list of values is formed and assigned to each key in courses
. In summary, value1
is not assigned to the element, but a new list is created from it and assigned to each element in the dictionary.
7. Conclusion
In this article, I have explained how to create a dictionary from list/set of keys by using using the fromkeys() method. Also, I have explained While creating a dictionary using fromkeys()
how can we use its keys
, and value
s by the users.
Happy Learning !!
Related Articles
- get() Method of Python Dictionary
- clear() Method of Python Dictionary
- items() Method of Python Dictionary
- update() Method of Python Dictionary
- keys() Method of Python Dictionary
- values() Method of Python Dictionary
- copy() Method of Python Dictionary
- pop() Method of Python Dictionary
- setdefault() Method of Python Dictionary
- popitem() Method of Python Dictionary
- Python Set copy() Method
References