Python – Remove Tuples from the List having every element as None
Last Updated :
15 May, 2023
Given a Tuple list, remove all tuples with all None values.
Input : test_list = [(None, 2), (None, None), (3, 4), (12, 3), (None, )]
Output : [(None, 2), (3, 4), (12, 3)]
Explanation : All None tuples are removed.
Input : test_list = [(None, None), (None, None), (3, 4), (12, 3), (None, )]
Output : [(3, 4), (12, 3)]
Explanation : All None tuples are removed.
Method #1 : Using all() + list comprehension
In this, we use all() to check for all None values for discarding and list comprehension does task of iteration.
Python3
test_list = [( None , 2 ), ( None , None ), ( 3 , 4 ), ( 12 , 3 ), ( None , )]
print ( "The original list is : " + str (test_list))
res = [sub for sub in test_list if not all (ele = = None for ele in sub)]
print ( "Removed None Tuples : " + str (res))
|
Output
The original list is : [(None, 2), (None, None), (3, 4), (12, 3), (None,)]
Removed None Tuples : [(None, 2), (3, 4), (12, 3)]
Time complexity: O(n), where n is the length of the input list.
Auxiliary space: O(m), where m is the number of non-None tuples in the input list.
Method #2 : Using filter() + lambda + all()
In this method, task of filtering None tuples is done using filter() and lambda function to provide None checking functionality using all().
Python3
test_list = [( None , 2 ), ( None , None ), ( 3 , 4 ), ( 12 , 3 ), ( None , )]
print ( "The original list is : " + str (test_list))
res = list ( filter ( lambda sub : not all (ele = = None for ele in sub), test_list))
print ( "Removed None Tuples : " + str (res))
|
Output
The original list is : [(None, 2), (None, None), (3, 4), (12, 3), (None,)]
Removed None Tuples : [(None, 2), (3, 4), (12, 3)]
Time complexity: O(n), where n is the length of the input list.
Auxiliary space: O(n)
Method #3: Using count() method
If count of None in each tuple equals to length of tuple, then the entire tuple elements are None.Used this in if condition and appended other tuples to output list
Python3
test_list = [( None , None ), ( None , None ), ( 3 , 4 ), ( 12 , 3 ), ( None , )]
print ( "The original list is : " + str (test_list))
res = []
for i in test_list:
if not (i.count( None ) = = len (i)):
res.append(i)
print ( "Removed None Tuples : " + str (res))
|
Output
The original list is : [(None, None), (None, None), (3, 4), (12, 3), (None,)]
Removed None Tuples : [(3, 4), (12, 3)]
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #4: Using enumerate function
Python3
test_list = [( None , None ), ( None , None ), ( 3 , 4 ), ( 12 , 3 ), ( None , )]
res = [sub for i,sub in enumerate (test_list) if not all (ele = = None for ele in sub)]
print (res)
|
Time Complexity: O(n) where n is the number of elements in the list “test_list”. enumerate function performs n number of operations.
Auxiliary Space: O(n), extra space is required
Method #5 : Using operator.countOf()
Python3
test_list = [( None , None ), ( None , None ), ( 3 , 4 ), ( 12 , 3 ), ( None , )]
print ( "The original list is : " + str (test_list))
res = []
import operator
for i in test_list:
if not (operator.countOf(i, None ) = = len (i)):
res.append(i)
print ( "Removed None Tuples : " + str (res))
|
Output
The original list is : [(None, None), (None, None), (3, 4), (12, 3), (None,)]
Removed None Tuples : [(3, 4), (12, 3)]
Time Complexity : O(N)
Auxiliary Space : O(N)
Method 6: Using a for loop and slicing
In this method, we use a for loop to iterate through the list and remove the None tuples by slicing the list.
Python3
test_list = [( None , None ), ( None , None ), ( 3 , 4 ), ( 12 , 3 ), ( None , )]
print ( "The original list is : " + str (test_list))
res = []
for i in range ( len (test_list)):
if None not in test_list[i]:
res.append(test_list[i])
print ( "Removed None Tuples : " + str (res))
|
Output
The original list is : [(None, None), (None, None), (3, 4), (12, 3), (None,)]
Removed None Tuples : [(3, 4), (12, 3)]
Time Complexity: O(n), where n is the length of the list
Auxiliary Space: O(n), where n is the length of the list (to store the result list)
Method 7: Using recursion
Step-by-step approach:
- Define the original list
- Define a recursive function that takes the original list and an empty list as arguments
- The function should check if the original list is empty
- If it is, return the empty list
- Otherwise, check if the first element of the list is a tuple containing None values
- If it is, call the function recursively with the remaining elements of the list and the empty list
- Otherwise, append the first element of the list to the empty list and call the function recursively with the remaining elements of the list and the updated list
- Call the recursive function with the original list and an empty list as arguments and assign the result to a new variabl
Python3
test_list = [( None , None ), ( None , None ), ( 3 , 4 ), ( 12 , 3 ), ( None , )]
def remove_none_tuples(lst, res):
if not lst:
return res
elif None in lst[ 0 ]:
return remove_none_tuples(lst[ 1 :], res)
else :
res.append(lst[ 0 ])
return remove_none_tuples(lst[ 1 :], res)
new_list = remove_none_tuples(test_list, [])
print ( "Removed None Tuples : " + str (new_list))
|
Output
Removed None Tuples : [(3, 4), (12, 3)]
Time complexity: O(n), where n is the length of the original list
Auxiliary space: O(n), where n is the length of the original list
Similar Reads
Python | Remove given element from the list
Given a list, write a Python program to remove the given element (list may have duplicates) from the given list. There are multiple ways we can do this task in Python. Let's see some of the Pythonic ways to do this task. Example: Input: [1, 8, 4, 9, 2] Output: [1, 8, 4, 2] Explanation: The Element 9
7 min read
Python Program to remove a specific digit from every element of the list
Given a list of elements, the task here is to write a Python program that can remove the presence of all a specific digit from every element and then return the resultant list. Examples: Input : test_list = [333, 893, 1948, 34, 2346], K = 3 Output : ['', 89, 1948, 4, 246] Explanation : All occurrenc
7 min read
Python | Remove trailing empty elements from given list
When working with lists in Python, it's common to encounter lists with extra None elements at the end. These trailing None values can cause issues in our programs . We can remove these trailing None elements using simple methods like slicing, loops, or filter. Using List Slicing Slicing is a very ef
3 min read
Python | Remove all strings from a list of tuples
Given a list of tuples, containing both integer and strings, the task is to remove all strings from list of tuples. Examples: Input : [(1, 'Paras'), (2, 'Jain'), (3, 'GFG'), (4, 'Cyware')] Output : [(1), (2), (3), (4)] Input : [('string', 'Geeks'), (2, 225), (3, '111')] Output : [(), (2, 225), (3,)]
8 min read
Python | Remove duplicate tuples from list of tuples
Given a list of tuples, Write a Python program to remove all the duplicated tuples from the given list. Examples: Input : [(1, 2), (5, 7), (3, 6), (1, 2)] Output : [(1, 2), (5, 7), (3, 6)] Input : [('a', 'z'), ('a', 'x'), ('z', 'x'), ('a', 'x'), ('z', 'x')] Output : [('a', 'z'), ('a', 'x'), ('z', 'x
5 min read
Python - Filter Tuples by Kth element from List
Given a list of tuples, filter by Kth element presence in List. Input : test_list = [("GFg", 5, 9), ("is", 4, 3), ("best", 10, 29)], check_list = [4, 2, 3, 10], K = 2 Output : [('is', 4, 3)] Explanation : 3 is 2nd element and present in list, hence filtered tuple. Input : test_list = [("GFg", 5, 9),
5 min read
Removing Tuples from a List by First Element Value - Python
In this problem we need to delete tuples based on a specific condition related to their first element. For example: We are given the list data = [("GeeksforGeeks", "Python", 1000), ("CodingForAll", "Java", 1200)] and we need to remove all tuples where the first element is "GeeksforGeeks", the desire
3 min read
Python | Remove tuples having duplicate first value from given list of tuples
Given a list of tuples, the task is to remove all tuples having duplicate first values from the given list of tuples. Examples: Input: [(12.121, 'Tuple1'), (12.121, 'Tuple2'), (12.121, 'Tuple3'), (923232.2323, 'Tuple4')] Output: [(12.121, 'Tuple1'), (923232.2323, 'Tuple4')]Input: [('Tuple1', 121), (
7 min read
Python - Remove given character from first element of Tuple
Given a Tuple list, remove K character from 1st element of the Tuple being String. Input : test_list = [("GF$g!", 5), ("!i$s", 4), ("best!$", 10)], K = '$' Output : [('GFg!', 5), ('!is', 4), ('best!', 10)] Explanation : First element's strings K value removed. Input : test_list = [("GF$g!", 5), ("be
5 min read
Remove common elements from two list in Python
When working with two lists in Python, we may need to remove the common elements between them. A practical example could be clearing out overlapping tasks between two to-do lists. The most efficient way to remove common elements between two lists is by using sets. [GFGTABS] Python a = [1, 2, 3, 4, 5
3 min read