# Python | Filter dictionary of tuples by condition

Sometimes, we can have a very specific problem in which we are given a tuple pair as values in dictionary and we need to filter dictionary items according to those pairs. This particular problem as use case in Many geometry algorithms in competitive programming. Let’s discuss certain ways in which this task can be performed.

Method #1 : Using `items()` + dictionary comprehension
These functionalities together can achieve this task. We can access all values using` items()` and condition can be imposed by dictionary comprehension.

 `# Python3 code to demonstrate working of ` `# Filter dictionary of tuples by condition ` `# Using items() + dictionary comprehension ` ` `  `# initializing dictionary ` `test_dict ``=` `{``'a'` `: (``6``, ``3``), ``'b'` `: (``4``, ``8``), ``'c'` `: (``8``, ``4``)} ` ` `  `# printing original dictionary ` `print``(``"The original dictionary is : "` `+` `str``(test_dict)) ` ` `  `# Filter dictionary of tuples by condition ` `# Using items() + dictionary comprehension ` `res ``=` `{key: val ``for` `key, val ``in` `test_dict.items() ``if` `val[``0``] >``=` `6` `and` `val[``1``] <``=` `4``} ` ` `  `# printing result ` `print``(``"The filtered dictionary is : "` `+`  `str``(res)) `

Output :

```The original dictionary is : {'b': (4, 8), 'a': (6, 3), 'c': (8, 4)}
The filtered dictionary is : {'a': (6, 3), 'c': (8, 4)}
```

Method #2 : Using `lambda + filter()`
This method works in similar way as above method with the exception of using the` filter` function instead of dictionary comprehension to compact logic. Works only with Python2.

 `# Python code to demonstrate working of ` `# Filter dictionary of tuples by condition ` `# Using lambda + filter() ` ` `  `# initializing dictionary ` `test_dict ``=` `{``'a'` `: (``6``, ``3``), ``'b'` `: (``4``, ``8``), ``'c'` `: (``8``, ``4``)} ` ` `  `# printing original dictionary ` `print``(``"The original dictionary is : "` `+` `str``(test_dict)) ` ` `  `# Filter dictionary of tuples by condition ` `# Using lambda + filter() ` `res ``=` `dict``(``filter``(``lambda` `(x, (y, z)): y >``=` `6` `and` `z <``=` `4``, test_dict.items())) ` ` `  `# printing result ` `print``(``"The filtered dictionary is : "` `+`  `str``(res)) `

Output :

```The original dictionary is : {'b': (4, 8), 'a': (6, 3), 'c': (8, 4)}
The filtered dictionary is : {'a': (6, 3), 'c': (8, 4)}
```

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.

Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.