How to Access a Dictionary Key by Index

5/5 - (1 vote)

Problem Formulation and Solution Overview

In this article, you’ll learn how to access a Dictionary key by index in Python.

To make it more fun, we have the following running scenario:

Rivers Clothing has a list of Employees. They would like to find the name of their youngest staff member. They know this person is 19. The list is in a Dictionary format, and you have been asked to retrieve the associated name.

πŸ’¬ Question: How would we write Python code to access a Dictionary Key by Index?

We can accomplish this task by one of the following options:


Method 1: Use Dictionary and List

These two options in this method convert a Dictionary into a List format to extract the keys. Then the appropriate key is accessed based on the scenario above.

staff = {'Amy': 23, 'Ben': 32, 'Micah': 37, 'Jon': 19,  'Karn': 39}
names = list(staff)
print(names[3])

This code declares a Dictionary containing five (5) key:value pairs and saves them to staff.

Option 1 above converts staff into a List format extracting the keys and saving them to names. The content of the appropriate key ([3]) is output to the terminal.

OR

staff = {'Amy': 23, 'Ben': 32, 'Micah': 37, 'Jon': 19,  'Karn': 39}
print(list(staff)[3])

Option 2 above extracts the keys from staff and converts them into a List format referencing the appropriate key ([3]) and sending the output to the terminal.

πŸ’‘Note: Both options produce the same results. However, Option 2 is more compact.

Python Dictionary – The Ultimate Guide

Output

Jon

Method 2: Use List and dict.items()

This example converts a Dictionary into a List format, then extracts and returns the key:value pairs as a List of Tuples.

staff = {'Amy': 23, 'Ben': 32, 'Micah': 37, 'Jon': 19,  'Karn': 39}
names = list(staff.items())
print(names[3][0])

This code declares a Dictionary containing five (5) key:value pairs and saves them to staff. Then staff.items() is called to extract these pairs as a List of Tuples.

If we output print(names) to the terminal, the following List of Tuples displays.

[('Amy', 23), ('Ben', 32), ('Micah', 37), ('Jon', 19), ('Karn', 39)]

If we output (print(names[3])) to the terminal, the referenced Tuple from the List displays.

('Jon', 19)

Then, to retrieve the first element of this Tuple, [0] is appended to names (print(names[3][0])). Finally, this result is output to the terminal.

Python dict.items() Method

Output

Jon

Method 3: Use List Comprehension and dict.items()

This example uses List Comprehension and dict.items() to look for and return the appropriate key based on a value.

staff = {'Amy': 23, 'Ben': 32, 'Micah': 37, 'Jon': 19,  'Karn': 39}
name = [k for k, v in staff.items() if v == 19]
print(name)

This code declares a Dictionary containing five (5) key:value pairs and saves them to staff. List Comprehension used with dict.items() searches for and returns the appropriate key where its associated value equals 19.

The result outputs to the terminal.

Output

['Jon']

To remove the surrounding brackets and quotes, append [0] to the end of the List Comprehension statement to produce the desired result.

staff = {'Amy': 23, 'Ben': 32, 'Micah': 37, 'Jon': 19,  'Karn': 39}
name = [k for k, v in staff.items() if v == 19][0]
print(name)

Output

Jon

Method 4: Use Dictionary Comprehension and dict.items()

This example uses Dictionary Comprehension and dict.items() to look for and return the appropriate key based on a value.

staff = {'Amy': 23, 'Ben': 32, 'Micah': 37, 'Jon': 19,  'Karn': 39}
name  = {k for k, v in staff.items() if v == 19}
print(list(name)[0])

This code declares a Dictionary containing five (5) key:value pairs and saves them to staff. Dictionary Comprehension with dict.items() searches for and returns the appropriate key where its associated value equals 19.

The result outputs to the terminal.

Python Dictionary Comprehension - A Powerful One-Liner Tutorial

As shown above, if [0] was not appended to name in the print statement, (print(list(name))) the following output displays.

Output

['Jon']

To remove the surrounding brackets and quotes, append [0] to the print statement (print(list(name)[0])) to produce the desired result.

Jon

Summary

These five (4) methods of accessing a Dictionary Key by Index should give you enough information to select the best one for your coding requirements.

Good Luck & Happy Coding!