Python | Initializing dictionary with empty lists

In python one usually comes across situations in which one has to use dictionary for storing the lists. But in those cases, one usually checks for first element and then creates a list corresponding to key when it comes. But its always wanted a method to initialize the dict. keys with list. Let’s discuss certain ways to achieve this particular task.

Method #1 : Using Dictionary comprehension
This is most sought of method to do this initialization. In this method, we create the no. of keys we require and then initialize the empty list as we keep on creating the keys, so as to facilitate the append operation afterwards without an error.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate 
# to initialize dictionary with list 
# using dictionary comprehension
  
# using dictionary comprehension to construct
new_dict = {new_list: [] for new_list in range(4)}
      
# printing result
print ("New dictionary with empty lists as keys : " + str(new_dict))

chevron_right


Output :

New dictionary with empty lists as keys : {0: [], 1: [], 2: [], 3: []}

Method #2 : Using fromkeys()
fromkeys() can be used to perform this by specifying the additional empty list as argument and the range of elements which need to be the key of dictionary being made.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate 
# to initialize dictionary with list 
# using fromkeys()
  
# using fromkeys() to construct
new_dict = dict.fromkeys(range(4), [])
      
# printing result
print ("New dictionary with empty lists as keys : " + str(new_dict))

chevron_right


Output :



New dictionary with empty lists as keys : {0: [], 1: [], 2: [], 3: []}

Method #3 : Using defaultdict
This is most pythonic way and error free way to use any key without initialization of its value, it has to be told the type of default container of all its keys and then evaluates the operations and structures accordingly.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate 
# to initialize dictionary with list 
# using defaultdict
from collections import defaultdict
  
# initializing dict with lists
new_dict = defaultdict(list)
  
# performing append
# shows no error
new_dict[0].append('GeeksforGeeks')
      
# printing result
print ("New dictionary created : " + str(dict(new_dict)))

chevron_right


Output :

New dictionary created : {0: ['GeeksforGeeks']}

Method #4 : Using setdefault
setdefault() can be used to perform this by specifying key-value pairs within a comprehension. This method obviates the need to import a module as is required in Method #3.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate 
# to initialize dictionary with list 
# using setdefault
  
# initializing dict with lists
new_dict = {}
[new_dict.setdefault(x, []) for x in range(4)]
  
# performing append
# shows no error
new_dict[0].append('GeeksforGeeks')
      
# printing result
print ("New dictionary created : " + str(dict(new_dict)))

chevron_right


Output :

New dictionary created : {0: ['GeeksforGeeks'], 1: [], 2: [], 3: []}

Method #5 : Using built-ins: dict and zip
The built-in functions dict, zip in conjunction with list comprehension can achieve the desired result.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate 
# use of dict() and zip() built-ins to demonstrate
# initializing dictionary with list 
  
keys = range(4)
new_dict = dict(zip(keys, ([] for _ in keys)))
  
print(new_dict)# performing append
# shows no error
new_dict[0].append('GeeksforGeeks')
      
# printing result
print ("New dictionary created : " + str(dict(new_dict)))

chevron_right


Output :

New dictionary created : {0: ['GeeksforGeeks'], 1: [], 2: [], 3: []}

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : ashok bakthavathsala