Python - Create a Dictionary using List with None Values
Last Updated :
11 Jul, 2025
The task of creating a dictionary from a list of keys in Python involves transforming a list of elements into a dictionary where each element becomes a key. Each key is typically assigned a default value, such as None, which can be updated later.
For example, if we have a list like ["A", "B", "C"], the goal is to convert it into a dictionary like {'A': None, 'B': None, 'C': None}.
Using dictionary comprehension
Dictionary comprehension is an efficient way to create dictionaries in a single line. It is highly efficient and easy to read, making it the go-to approach for initializing dictionaries with a predefined structure. This method is ideal when we need a fast and clear solution without creating intermediate objects.
Python
li = [1, 2, 3, 4, 5]
res = {key: None for key in li}
print(res)
Output{1: None, 2: None, 3: None, 4: None, 5: None}
Explanation: {key: None for key in li} iterates over each element in the list li, adding each element as a key to the dictionary res with the value set to None. This results in a dictionary where each element from the list is a key, and its corresponding value is None.
Using dict.from keys()
dict.fromkeys() is a built-in function explicitly designed for initializing dictionaries with a common value. It takes an iterable of keys and a default value, which is perfect for this task. It’s straightforward, clean and optimized for initializing dictionaries, making it a great choice when clarity is a priority.
Python
li = [1, 2, 3, 4, 5]
res = dict.fromkeys(li, None)
print(res)
Output{1: None, 2: None, 3: None, 4: None, 5: None}
Explanation: res = dict.fromkeys(li, None) uses the fromkeys() of the dict class to create a new dictionary. It takes an iterable li , where each element becomes a key in the dictionary and the second argument None sets the value for each key.
Using zip()
This approach combines the power of zip() and dict() to pair elements from a list with a corresponding sequence of values None in this case . It is particularly flexible, as it allows us to initialize keys with any set of corresponding values. While slightly less efficient, it’s useful when handling more dynamic scenarios.
Python
li = [1, 2, 3, 4, 5]
res = dict(zip(li, [None] * len(li)))
print(res)
Output{1: None, 2: None, 3: None, 4: None, 5: None}
Explanation: dict(zip(li, [None] * len(li)))
pairs elements from li
with None
using zip()
, creating tuples like (1, None)
. The dict()
function then converts these pairs into a dictionary where the elements from li
are keys, and the value for each key is None
.
Using for loop
For loop is a traditional approach that involves iterating over a list and adding key-value pairs one at a time. While not as concise or efficient as other methods, it is a straightforward way to understand dictionary construction
Python
li = [1, 2, 3, 4, 5]
res = {} # initialize empty dictionary
for key in li:
res[key] = None
print(res)
Output{1: None, 2: None, 3: None, 4: None, 5: None}
Explanation: This code iterates over each element in the list li and adds it as a key to the dictionary res, assigning None as the value for each key.
Explore
Python Fundamentals
Python Data Structures
Advanced Python
Data Science with Python
Web Development with Python
Python Practice