Working With Nested Data Types In Python

Python comes with a lot of built-in data types like lists, sets, tuples, and dictionaries and because of its simplicity, Python makes it very easy to work with these data types. In this post, I will discuss how to nest these data types to create sophisticated types for managing data.

Let’s create a list to hold the names of the top three public universities in the USA.

universities = ['UCLA', 'UC Berkley', 'UMich']

While this works well to hold the university names, if we wish to associate additional information with each university such as its ranking, then a list of strings will not suffice. Instead, if we replace the list of strings with a list of dictionaries, we can hold more information in it, like university names and rankings.

For example, a dictionary with a university name and rank can be constructed like this:

{"name": "UCLA", "rank": 1}

Let’s go ahead and change our universities list to hold dictionaries instead of strings.

universities = [
    {"name": "UCLA", "rank": 1},
    {"name": "UC Berkley", "rank": 2},
    {"name": "UMich", "rank": 3}
]

If we want to print information corresponding to UCLA, we can do so by using the index notation like so:

print(universities[0])

This will give us the following output:

{'name': 'UCLA', 'rank': 1}

Now, if we want to access the rank of UCLA, we can do so by:

ucla_rank = universities[0]['rank']

The above line of code can seem complicated but all that we are doing is accessing the dictionary {'name': 'UCLA', 'rank': 1} through universities[0] and then going one level deeper into the dictionary to access the rank through universities[0]['rank']

print(f"UCLA is ranked number {ucla_rank} in the country.")

This will give us the following output:

UCLA is ranked number 1 in the country.

Let’s iterate over the list of universities to display all the names and ranks.

for university in universities:
    name = university['name']
    rank = university['rank']
    print(f"{name} is ranked number {rank} in the country.")

We get the following output:

UCLA is ranked number 1 in the country.
UC Berkley is ranked number 2 in the country.
UMich is ranked number 3 in the country.

Yay! We’ve successfully created and worked with a nested data type.


While mentoring students new to programming, I have realized that many technical blog posts assume that the reader is an experienced programmer, which is not always the case. Hence, this is a beginner-friendly post intended to help people who are not only new to Python, but also to programming.

If you would like to read more posts about Python Basics, you can find them here.

Please let me know about any other beginner-friendly topics about which you would like to learn.

Thank you for reading!

License

Copyright 2021-present Vasudha Jha.

Released under the Creative Commons Attribution-ShareAlike 4.0 International License.

Vasudha Jha
Vasudha Jha
MS in Computer Science Student

An engineer, artist and writer, all at the same time, I suppose.

Related