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 setini_set = {1, 2, 3, 4, 5}# printing initialized setprint ("initial string", ini_set)print (type(ini_set))# Converting set to dictionaryres = dict.fromkeys(ini_set, 0)# printing final result and its typeprint ("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 setini_set = {1, 2, 3, 4, 5}# printing initialized setprint ("initial string", ini_set)print (type(ini_set))str = 'fg'# Converting set to dictres = {element:'Geek'+str for element in ini_set}# printing final result and its typeprint ("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)
