Python - Extract Tuples with all Numeric Strings
Last Updated :
15 Mar, 2023
Given a list of tuples, extract only those tuples which have all numeric strings.
Input : test_list = [("45", "86"), ("Gfg", "1"), ("98", "10")]
Output : [('45', '86'), ('98', '10')]
Explanation : Only number representing tuples are filtered.
Input : test_list = [("Gfg", "1")]
Output : []
Explanation : No tuple containing just numbers.
Method #1 : Using list comprehension + all() + isdigit()
In this, we check for string being numeric string using isdigit() and all() is used to check for all strings. List comprehension is used to iterate all tuples.
Python3
# Python3 code to demonstrate working of
# Extract Tuples with all Numeric Strings
# Using all() + list comprehension + isdigit()
# initializing list
test_list = [("45", "86"), ("Gfg", "1"), ("98", "10"), ("Gfg", "Best")]
# printing original list
print("The original list is : " + str(test_list))
# all() checks for all digits()
res = [sub for sub in test_list if all(ele.isdigit() for ele in sub)]
# printing result
print("Filtered Tuples : " + str(res))
OutputThe original list is : [('45', '86'), ('Gfg', '1'), ('98', '10'), ('Gfg', 'Best')]
Filtered Tuples : [('45', '86'), ('98', '10')]
Method #2 : Using lambda + filter() + isdigit()
In this, we perform task of filtering using filter() + lambda, and isdigit() is used to check for numerics.
Python3
# Python3 code to demonstrate working of
# Extract Tuples with all Numeric Strings
# Using lambda + filter() + isdigit()
# initializing list
test_list = [("45", "86"), ("Gfg", "1"), ("98", "10"), ("Gfg", "Best")]
# printing original list
print("The original list is : " + str(test_list))
# all() checks for all digits()
res = list(filter(lambda sub: all(ele.isdigit() for ele in sub), test_list))
# printing result
print("Filtered Tuples : " + str(res))
OutputThe original list is : [('45', '86'), ('Gfg', '1'), ('98', '10'), ('Gfg', 'Best')]
Filtered Tuples : [('45', '86'), ('98', '10')]
Method #3 : Using list comprehension + all() + isnumeric()
Python3
# Python3 code to demonstrate working of
# Extract Tuples with all Numeric Strings
# Using all() + list comprehension + isdigit()
# initializing list
test_list = [("45", "86"), ("Gfg", "1"), ("98", "10"), ("Gfg", "Best")]
# printing original list
print("The original list is : " + str(test_list))
res = [sub for sub in test_list if all(ele.isnumeric() for ele in sub)]
# printing result
print("Filtered Tuples : " + str(res))
OutputThe original list is : [('45', '86'), ('Gfg', '1'), ('98', '10'), ('Gfg', 'Best')]
Filtered Tuples : [('45', '86'), ('98', '10')]
The Time and Space Complexity for all the methods are the same:
Time Complexity: O(n2)
Auxiliary Space: O(n2)
Method #4 : Using join(),replace() and len() methods
Python3
# Python3 code to demonstrate working of
# Extract Tuples with all Numeric Strings
# initializing list
test_list = [("45", "86"), ("Gfg", "1"), ("98", "10"), ("Gfg", "Best")]
# printing original list
print("The original list is : " + str(test_list))
digits = "0123456789"
res = []
for i in test_list:
x = "".join(i)
for j in digits:
x = x.replace(j, "")
if(len(x) == 0):
res.append(i)
# printing result
print("Filtered Tuples : " + str(res))
OutputThe original list is : [('45', '86'), ('Gfg', '1'), ('98', '10'), ('Gfg', 'Best')]
Filtered Tuples : [('45', '86'), ('98', '10')]
Method #5:Using loop and re
- Initialize the test_list with tuples.
- Print the original list.
- Initialize the result list.
- Loop through each tuple in the test_list.
- For each tuple in the test_list, check if all elements in the tuple are numeric.
- If all elements are numeric, append the tuple to the result list.
- Print the filtered tuples.
Python3
#Python3 code to demonstrate working of
#Extract Tuples with all Numeric Strings
#Using re module and loop
import re
#initializing list
test_list = [("45", "86"), ("Gfg", "1"), ("98", "10"), ("Gfg", "Best")]
#printing original list
print("The original list is : " + str(test_list))
#initialize result list
res = []
#iterate over the tuples in the test_list
for sub in test_list:
# check if all elements in the tuple are numeric
if all([re.match('^[0-9]+$', i) for i in sub]):
res.append(sub)
#printing result
print("Filtered Tuples : " + str(res))
#This code is contributed by Vinay Pinjala.
OutputThe original list is : [('45', '86'), ('Gfg', '1'), ('98', '10'), ('Gfg', 'Best')]
Filtered Tuples : [('45', '86'), ('98', '10')]
Time complexity: The time complexity of this code is O(n*m) where n is the length of the input list and m is the maximum length of the tuples in the input list. This is because we are iterating through the input list and for each tuple, we are iterating through all its elements to check if they are numeric using regular expressions.
Space complexity: The space complexity of this code is O(k), where k is the number of tuples that satisfy the condition of having all numeric strings. This is because we are creating a new list to store these tuples. The space required for the regular expression matches is negligible in comparison.
Similar Reads
Python - Extract String till Numeric Given a string, extract all its content till first appearance of numeric character. Input : test_str = "geeksforgeeks7 is best" Output : geeksforgeeks Explanation : All characters before 7 are extracted. Input : test_str = "2geeksforgeeks7 is best" Output : "" Explanation : No character extracted as
5 min read
Python - Extract Strings with a digit Given a Strings List, extract those with atleast one digit. Input : test_list = ['gf4g', 'is', 'best', 'gee1ks'] Output : ['gf4g', 'gee1ks'] Explanation : 4, 1 are respective digits in string. Input : test_list = ['gf4g', 'is', 'best', 'geeks'] Output : ['gf4g'] Explanation : 4 is digit in string. M
5 min read
Python - Filter Tuples with Integers Given Tuple list, filter tuples which are having just int data type. Input : [(4, 5, "GFg"), (3, ), ("Gfg", )] Output : [(3, )] Explanation : 1 tuple (3, ) with all integral values. Input : [(4, 5, "GFg"), (3, "Best" ), ("Gfg", )] Output : [] Explanation : No tuple with all integers. Method #1 : Usi
5 min read
Python - Convert Tuple String to Integer Tuple Interconversion of data is a popular problem developer generally deal with. One can face a problem to convert tuple string to integer tuple. Let's discuss certain ways in which this task can be performed. Method #1 : Using tuple() + int() + replace() + split() The combination of above methods can be
7 min read
Python - Extract Numerical Dictionary values Sometimes, while working with Python Dictionaries, we can have a problem in which we need to extract only if a particular key index is numeric value from the dictionaries which are in form of strings. This can be desired in applications in which we require to do preprocessing. Let's discuss certain
5 min read