# How to find symmetric pairs in a Python Dictionary

Hello everyone, in this tutorial, we are going to see how we can find symmetric pairs in a Python Dictionary. suppose we have a dictionary called dict = {‘A’: 1, ‘B’: 2, ‘C’: 3, 2: ‘B’, 1: ‘A’}. Then the symmetric pairs in this dictionary are (‘A’, 1) (1, ‘A) and (‘B’, 2) (2, ‘B’). We will be studying how to find these pairs in a given dictionary in detail in this post as we move further.

We will be doing this in two ways. Let’s study them separately.

### Using generators

First, we will solve this problem using a generator. If you don’t know about Python generators, please visit this post: How to use generator in Python with examples.

See the given example code and try to understand what each portion of this code does.

dict = {'A': 1, 'B': 2, 'C': 3, 2: 'B', 1: 'A'} def generator(dict): for key in dict.keys(): value = dict.get(key) if dict.get(value) == key: yield key, value pairs = [] for key, value in generator(dict): pairs.append((key, value)) print("The given dictionary: ", dict) print("The symmetric pairs: ", pairs)

Output:

The given dictionary: {'A': 1, 'B': 2, 'C': 3, 2: 'B', 1: 'A'} The symmetric pairs: [('A', 1), ('B', 2), (2, 'B'), (1, 'A')]

Here, as you can see in the example program, we have used a generator which yields the pair of key and value that are symmetrical. We append it to a list* pairs *and then print it.

### Using List Comprehension

Another way to solve the above problem is list comprehension. We can store the symmetrical pairs using a list comprehension. Have a look at the given code for a better understanding of the program.

dict = {'A': 1, 'B': 2, 'C': 3, 2: 'B', 1: 'A'} pairs = [(key, value) for key, value in dict.items() if dict.get(value) == key] print("The given dictionary: ", dict) print("The symmetric pairs: ", pairs)

Output:

The given dictionary: {'A': 1, 'B': 2, 'C': 3, 2: 'B', 1: 'A'} The symmetric pairs: [('A', 1), ('B', 2), (2, 'B'), (1, 'A')]

Thank you.

You can also read: Dictionary in Python

## Leave a Reply