Open In App

Python | List of tuples to dictionary conversion

Last Updated : 24 Mar, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Interconversions are always required while coding in Python, also because of the expansion of Python as a prime language in the field of Data Science. This article discusses yet another problem that converts to dictionary and assigns keys as 1st element of tuple and rest as it’s value. Let’s discuss certain ways in which this can be performed. 

Method #1 : Using dictionary comprehension This problem can be solved using a shorthand made using dictionary comprehension which performs the classic Naive method of loops in single line inside a dictionary. 

Python3




# Python3 code to demonstrate
# List of tuple to dictionary conversion
# using list comprehension
 
# initializing list
test_list = [('Nikhil', 21, 'JIIT'), ('Akash', 22, 'JIIT'), ('Akshat', 22, 'JIIT')]
 
# printing original list
print("The original list : " + str(test_list))
 
# using list comprehension
# List of tuple to dictionary conversion
res = {sub[0]: sub[1:] for sub in test_list}
 
# print result
print("The dictionary after conversion : " + str(res))


Output : 

The original list : [(‘Nikhil’, 21, ‘JIIT’), (‘Akash’, 22, ‘JIIT’), (‘Akshat’, 22, ‘JIIT’)] The dictionary after conversion : {‘Nikhil’: (21, ‘JIIT’), ‘Akshat’: (22, ‘JIIT’), ‘Akash’: (22, ‘JIIT’)}

Time complexity: O(n), where n is the number of tuples in the input list.
Auxiliary space: O(n), where n is the number of tuples in the input list. 

Method #2 : Using dict() + dictionary comprehension Performs task similar to the above method, just the difference comes in the way of creation of dictionary. In the above method, dictionary is created using comprehension, here dict function is used for creation of a dictionary. 

Python3




# Python3 code to demonstrate
# List of tuple to dictionary conversion
# using dict() + dictionary comprehension
 
# initializing list
test_list = [('Nikhil', 21, 'JIIT'), ('Akash', 22, 'JIIT'), ('Akshat', 22, 'JIIT')]
 
# printing original list
print("The original list : " + str(test_list))
 
# using dict() + dictionary comprehension
# List of tuple to dictionary conversion
res = dict((idx[0], idx[1:]) for idx in test_list)
 
# print result
print("The dictionary after conversion : " + str(res))


Output : 

The original list : [(‘Nikhil’, 21, ‘JIIT’), (‘Akash’, 22, ‘JIIT’), (‘Akshat’, 22, ‘JIIT’)] The dictionary after conversion : {‘Nikhil’: (21, ‘JIIT’), ‘Akshat’: (22, ‘JIIT’), ‘Akash’: (22, ‘JIIT’)}

Time Complexity: O(n*n) where n is the number of elements in the list “test_list”. dict() + dictionary comprehension performs n*n number of operations.
Auxiliary Space: O(n), extra space is required where n is the number of elements in the list

Method 3- using a for loop:

This method iterates over each tuple in the list, extracts the first element (key) and the remaining elements (value) and assigns them to the dictionary. 

Python3




test_list = [('Nikhil', 21, 'JIIT'), ('Akash', 22, 'JIIT'), ('Akshat', 22, 'JIIT')]
 
result_dict = {}
 
for tpl in test_list:
    result_dict[tpl[0]] = tpl[1:]
 
print("The dictionary after conversion : " + str(result_dict))


Output

The dictionary after conversion : {'Nikhil': (21, 'JIIT'), 'Akash': (22, 'JIIT'), 'Akshat': (22, 'JIIT')}

Time complexity: O(n), where n is the number of tuples in the list. The for loop iterates over each tuple once.
Auxiliary space: O(n), where n is the number of tuples in the list. The space required to store the dictionary is proportional to the number of tuples in the list.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads