# Python – Extract tuples having K digit elements

• Last Updated : 20 Jul, 2022

Given a list of tuples, extract all tuples having K digit elements.

Input : test_list = [(54, 2), (34, 55), (222, 23), (12, 45), (78, )], K = 2
Output : [(34, 55), (12, 45), (78,)]
Explanation : All tuples have numbers with 2 digits.

Input : test_list = [(54, 2), (34, 55), (222, 23), (12, 45), (782, )], K = 3
Output : [(782,)]
Explanation : All tuples have numbers with 3 digits.

Method #1 : Using all() + list comprehension

In this, we check for each element being of K digit by converting to string and checking its length. The all() is used to check if all elements are of similar size.

## Python3

 `# Python3 code to demonstrate working of` `# Extract K digit Elements Tuples` `# Using all() + list comprehension`   `# initializing list` `test_list ``=` `[(``54``, ``2``), (``34``, ``55``), (``222``, ``23``), (``12``, ``45``), (``78``, )]`   `# printing original list` `print``(``"The original list is : "` `+` `str``(test_list))`   `# initializing K` `K ``=` `2`   `# using len() and str() to check length and ` `# perform string conversion` `res ``=` `[sub ``for` `sub ``in` `test_list ``if` `all``(``len``(``str``(ele)) ``=``=` `K ``for` `ele ``in` `sub)]`   `# printing result` `print``(``"The Extracted tuples : "` `+` `str``(res))`

Output:

The original list is : [(54, 2), (34, 55), (222, 23), (12, 45), (78,)] The Extracted tuples : [(34, 55), (12, 45), (78,)]

Method #2 : Using all() + filter() + lambda

This is similar to above method, difference being filter() and lambda is used to solve problem of filtering.

## Python3

 `# Python3 code to demonstrate working of` `# Extract K digit Elements Tuples` `# Using all() + filter() + lambda`   `# initializing list` `test_list ``=` `[(``54``, ``2``), (``34``, ``55``), (``222``, ``23``), (``12``, ``45``), (``78``, )]`   `# printing original list` `print``(``"The original list is : "` `+` `str``(test_list))`   `# initializing K` `K ``=` `2`   `# filter() and lambda used for task of filtering` `res ``=` `list``(``filter``(``lambda` `sub: ``all``(``len``(``str``(ele)) ``=``=` `K ``for` `ele ``in` `sub), test_list))`   `# printing result` `print``(``"The Extracted tuples : "` `+` `str``(res))`

Output:

The original list is : [(54, 2), (34, 55), (222, 23), (12, 45), (78,)] The Extracted tuples : [(34, 55), (12, 45), (78,)]

Method #3: Using list(),map(),str() and len() methods

Converting each tuple element to string and converting that tuple to list after that iterating over the list finding the length of each element and appending to a new list.If the new list is [K,K] or[K] then the tuples have K digit elements.

## Python3

 `# Python3 code to demonstrate working of` `# Extract K digit Elements Tuples`   `# initializing list` `test_list ``=` `[(``54``, ``2``), (``34``, ``55``), (``222``, ``23``), (``12``, ``45``), (``78``, )]`   `# printing original list` `print``(``"The original list is : "` `+` `str``(test_list))`   `# initialising K` `K ``=` `2`   `res``=``[]` `for` `i ``in` `test_list:` `    ``x``=``list``(``map``(``str``,i))` `    ``p``=``[]` `    ``for` `j ``in` `x:` `        ``p.append(``len``(j))` `    ``if``(p``=``=``[K,K] ``or` `p``=``=``[K]):` `        ``res.append(i)` `    `  `# printing result` `print``(``"The Extracted tuples : "` `+` `str``(res))`

Output

```The original list is : [(54, 2), (34, 55), (222, 23), (12, 45), (78,)]
The Extracted tuples : [(34, 55), (12, 45), (78,)]```

My Personal Notes arrow_drop_up
Related Articles