Related Articles

# Python | Find Symmetric Pairs in dictionary

• Last Updated : 15 Oct, 2019

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')]
```

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up