Python: Convert Tuples to Dictionaries

Python: Convert Tuples to Dictionaries

Dictionaries in Python are an implementantion of hash tables: a data structure on which data is labeled by a key-value. This data structure is efficient for looking up data by its key, with an expected O(1) lookup time.

It is important to keep in mind that dict objects are mutable, and that the key values must be of a hashable (i.e. immutable) type.

Convert List of Tuples to a Dictionary in Python

One of the ways of creating a dictionary in Python is using a list of tuples in the (key,value) format, simply by calling the dict() method on your list:

my_data = [('John', 1), ('Joe', 2), ('Alice',3), ('Bob',4)]
my_dict = dict(my_data)
print(my_dict)
{'John': 1, 'Joe': 2, 'Alice': 3, 'Bob': 4}

In effect, this is the reverse of the dict.items() method. This is a versatile way of creating dicts! For example, you can transform your data with map before calling the dict() method:

my_data = [('John', 1), ('Joe', 2), ('Alice',3), ('Bob',4)]
my_dict = dict(map(reversed, my_data))
print(my_dict)

Get free courses, guided projects, and more

No spam ever. Unsubscribe anytime. Read our Privacy Policy.

{1: 'John', 2: 'Joe', 3: 'Alice', 4: 'Bob'}

Tuples With Complex Types to Dictionary

Sometimes, depending on your application, you might want to create a dictionary with some complex key - for example, suppose that your key is composed of two values. The list type is mutable, which means it is not hashable. Therefore, the following code throws an error:

my_data = [([1,2] ,'John'), ([2,3], 'Joe'), ([3,4], 'Alice'), ([4,5],'Bob')]
my_dict = dict(my_data)
print(my_dict)
TypeError: unhashable type: 'list'

In this case, the tuple type can help us again - as tuples are immutable, they are hashable. This means we can use them as keys for our dict, as follows:

my_data = [((1,2) ,'John'), ((2,3), 'Joe'), ((3,4), 'Alice'), ((4,5),'Bob')]
my_dict = dict(my_data)
print(my_dict)
{(1, 2): 'John', (2, 3): 'Joe', (3, 4): 'Alice', (4, 5): 'Bob'}
Last Updated: November 16th, 2022
Was this helpful?
Project

Building Your First Convolutional Neural Network With Keras

# python# artificial intelligence# machine learning# tensorflow

Most resources start with pristine datasets, start at importing and finish at validation. There's much more to know. Why was a class predicted? Where was...

David Landup
David Landup
Details
Course

Data Visualization in Python with Matplotlib and Pandas

# python# pandas# matplotlib

Data Visualization in Python with Matplotlib and Pandas is a course designed to take absolute beginners to Pandas and Matplotlib, with basic Python knowledge, and...

David Landup
David Landup
Details

© 2013-2022 Stack Abuse. All rights reserved.

DisclosurePrivacyTerms