# How to Access a Dictionary Key by Index

## 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.

Output

## 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.

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

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.

Output

## 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

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

## 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.

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

Output

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

## 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!