Sometimes we need to convert one data structure into another for various operations and problems in our day to day coding and web development. Like we may want to get a dictionary from the given set elements.
Let’s discuss a few methods to convert given set into a dictionary.
Method #1: Using fromkeys()
Python3
# Python code to demonstrate # converting set into dictionary # using fromkeys() # initializing set ini_set = { 1 , 2 , 3 , 4 , 5 } # printing initialized set print ( "initial string" , ini_set) print ( type (ini_set)) # Converting set to dictionary res = dict .fromkeys(ini_set, 0 ) # printing final result and its type print ( "final list" , res) print ( type (res)) |
initial string {1, 2, 3, 4, 5} <class 'set'> final list {1: 0, 2: 0, 3: 0, 4: 0, 5: 0} <class 'dict'>
Method #2: Using dict comprehension
Python3
# Python code to demonstrate # converting set into dictionary # using dict comprehension # initializing set ini_set = { 1 , 2 , 3 , 4 , 5 } # printing initialized set print ( "initial string" , ini_set) print ( type (ini_set)) str = 'fg' # Converting set to dict res = {element: 'Geek' + str for element in ini_set} # printing final result and its type print ( "final list" , res) print ( type (res)) |
initial string {1, 2, 3, 4, 5} <class 'set'> final list {1: 'Geekfg', 2: 'Geekfg', 3: 'Geekfg', 4: 'Geekfg', 5: 'Geekfg'} <class 'dict'>
Using the zip() function:
Approach:
Use the zip() function to create a list of keys and a list of default values.
Use a dictionary comprehension to create a dictionary from the two lists.
Python3
def set_to_dict(s): keys = list (s) values = [ None ] * len (s) return {k: v for k, v in zip (keys, values)} s = { 1 , 2 , 3 } print (set_to_dict(s)) |
{1: None, 2: None, 3: None}
Time complexity: O(n)
Space complexity: O(n)