# Python | Find Symmetric Pairs in dictionary

Sometimes, while working with Python dictionary, one can have a problem in which one desires to get key-value pairs that are symmetrical, i.e that has key-value pair of same value irrespective of the fact value is a key or value. Let’s discuss certain ways in which this task can be performed.

Method #1 : Using generator + loop

This task can be solved in brute force method using loops and generators by yielding at runtime the values of matching key-value pairs.

 `# Python3 code to demonstrate working of ` `# Find Symmetric Pairs in dictionary ` `# using generator + loop ` ` `  `# generator function to perform task ` `def` `find_sym_pairs(test_dict): ` `    ``for` `key ``in` `test_dict.keys(): ` `        ``val ``=` `test_dict.get(key) ` ` `  `        ``if` `test_dict.get(val) ``=``=` `key: ` `            ``yield` `key, val ` `    ``return`  ` `  `# Initializing dict ` `test_dict ``=` `{``'a'` `: ``1``, ``'b'` `: ``2``, ``'c'` `: ``3``,  ``1` `: ``'a'``, ``2` `: ``'b'``} ` ` `  `# printing original dict  ` `print``(``"The original dict is : "` `+` `str``(test_dict)) ` ` `  `# Find Symmetric Pairs in dictionary ` `# using generator + loop ` `res ``=` `[] ` `for` `key, val ``in` `find_sym_pairs(test_dict): ` `    ``temp ``=` `(key, val) ` `    ``res.append(temp) ` ` `  `# printing result ` `print``(``"The pairs of Symmetric values : "` `+` `str``(res)) `

Output :

```The original dict is : {'a': 1, 1: 'a', 'c': 3, 'b': 2, 2: 'b'}
The pairs of Symmetric values : [('a', 1), (1, 'a'), ('b', 2), (2, 'b')]
```

Method #2 : Using list comprehension

This task can also be performed as a one-liner using list comprehension as a shortened way of performing loop-based solution.

 `# Python3 code to demonstrate working of ` `# Find Symmetric Pairs in dictionary ` `# Using list comprehension ` ` `  `# Initializing dict ` `test_dict ``=` `{``'a'` `: ``1``, ``'b'` `: ``2``, ``'c'` `: ``3``,  ``1` `: ``'a'``, ``2` `: ``'b'``} ` ` `  `# printing original dict  ` `print``(``"The original dict is : "` `+` `str``(test_dict)) ` ` `  `# Find Symmetric Pairs in dictionary ` `# Using list comprehension ` `temp ``=` `[(key, value) ``for` `key, value ``in` `test_dict.items()] ` `res ``=` `[(x, y) ``for` `(x, y) ``in` `temp ``if` `(y, x) ``in` `temp] ` ` `  `# printing result ` `print``(``"The pairs of Symmetric values : "` `+` `str``(res)) `

Output :

```The original dict is : {'a': 1, 1: 'a', 'c': 3, 'b': 2, 2: 'b'}
The pairs of Symmetric values : [('a', 1), (1, 'a'), ('b', 2), (2, 'b')]
```

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.