Open In App

Python – Remove Tuples from the List having every element as None

Last Updated : 15 May, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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




# Python3 code to demonstrate working of
# Remove None Tuples from List
# Using all() + list comprehension
 
# initializing list
test_list = [(None, 2), (None, None), (3, 4), (12, 3), (None, )]
 
# printing original list
print("The original list is : " + str(test_list))
 
# negating result for discarding all None Tuples
res = [sub for sub in test_list if not all(ele == None for ele in sub)]
 
# printing result
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




# Python3 code to demonstrate working of
# Remove None Tuples from List
# Using filter() + lambda + all()
 
# initializing list
test_list = [(None, 2), (None, None), (3, 4), (12, 3), (None, )]
 
# printing original list
print("The original list is : " + str(test_list))
 
# filter() + lambda to drive logic of discarding tuples
res = list(filter(lambda sub : not all(ele == None for ele in sub), test_list))
 
# printing result
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




# Python3 code to demonstrate working of
# Remove None Tuples from List
 
# initializing list
test_list = [(None, None), (None, None), (3, 4), (12, 3), (None, )]
 
# printing original list
print("The original list is : " + str(test_list))
 
# negating result for discarding all None Tuples
res=[]
for i in test_list:
    if not(i.count(None)== len(i)):
        res.append(i)
 
# printing result
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)


Output

[(3, 4), (12, 3)]

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




# Python3 code to demonstrate working of
# Remove None Tuples from List
 
# initializing list
test_list = [(None, None), (None, None), (3, 4), (12, 3), (None, )]
 
# printing original list
print("The original list is : " + str(test_list))
 
# negating result for discarding all None Tuples
res=[]
import operator
for i in test_list:
    if not(operator.countOf(i,None)== len(i)):
        res.append(i)
 
# printing result
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




# Python3 code to demonstrate working of
# Remove None Tuples from List
 
# initializing list
test_list = [(None, None), (None, None), (3, 4), (12, 3), (None, )]
 
# printing original list
print("The original list is : " + str(test_list))
 
# using for loop and slicing to remove None Tuples
res = []
for i in range(len(test_list)):
    if None not in test_list[i]:
        res.append(test_list[i])
 
# printing result
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




# Define the original list
test_list = [(None, None), (None, None), (3, 4), (12, 3), (None, )]
 
# Define the recursive function
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)
 
# Call the recursive function with the original list and an empty list
new_list = remove_none_tuples(test_list, [])
 
# Print the new 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 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), ('Tuple2', 125), ('Tuple1', 135), ('Tuple4', 478)]
7 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')] Method #1 : List comprehension This is a naive
5 min read
Python | Remove tuples from list of tuples if greater than n
Given a list of a tuple, the task is to remove all the tuples from list, if it's greater than n (say 100). Let's discuss a few methods for the same. Method #1: Using lambda STEPS: Initialize a list of tuples: ini_tuple = [('b', 100), ('c', 200), ('c', 45), ('d', 876), ('e', 75)]Print the initial list: print("intial_list", str(ini_tuple))Define the
6 min read
Python | Find the tuples containing the given element from a list of tuples
Given a list of tuples, the task is to find all those tuples containing the given element, say n. Examples: Input: n = 11, list = [(11, 22), (33, 55), (55, 77), (11, 44)] Output: [(11, 22), (11, 44)] Input: n = 3, list = [(14, 3),(23, 41),(33, 62),(1, 3),(3, 3)] Output: [(14, 3), (1, 3), (3, 3)] There are multiple ways we can find the tuples contai
6 min read
Python | Remove None values from list
There can be multiple methods to remove None values from a Python list. Some of them are discussed as follows: Method 1: Naive Method In the naive method, we iterate through the whole list and append all the filtered, non-None values into a new list, hence ready to be performed with subsequent operations. C/C++ Code # initializing list test_list =
5 min read
Python | Count tuples occurrence in list of tuples
Many a time while developing web and desktop products in Python, we use nested lists and have several queries about how to find the count of unique tuples. Let us see how to get the count of unique tuples in the given list of tuples. Below are some ways to achieve the above task. Method #1: Using Iteration C/C++ Code # Python code to count unique #
5 min read
Python | Combining tuples in list of tuples
Sometimes, we might have to perform certain problems related to tuples in which we need to segregate the tuple elements to combine with each element of complex tuple element( such as list ). This can have application in situations we need to combine values to form a whole. Let's discuss certain ways in which this can be performed. Method #1: Using
7 min read
Python | Convert string tuples to list tuples
Sometimes, while working with Python we can have a problem in which we have a list of records in form of tuples in stringified form and we desire to convert them to a list of tuples. This kind of problem can have its occurrence in the data science domain. Let's discuss certain ways in which this task can be performed. Method 1 (Using eval() + list
4 min read
Python - Filter all uppercase characters Tuples from given list of tuples
Given a Tuple list, filter tuples that contain all uppercase characters. Input : test_list = [("GFG", "IS", "BEST"), ("GFg", "AVERAGE"), ("GfG", ), ("Gfg", "CS")] Output : [('GFG', 'IS', 'BEST')] Explanation : Only 1 tuple has all uppercase Strings. Input : test_list = [("GFG", "iS", "BEST"), ("GFg", "AVERAGE"), ("GfG", ), ("Gfg", "CS")] Output : [
8 min read
Python program to find Tuples with positive elements in List of tuples
Given a list of tuples. The task is to get all the tuples that have all positive elements. Examples: Input : test_list = [(4, 5, 9), (-3, 2, 3), (-3, 5, 6), (4, -6)] Output : [(4, 5, 9)] Explanation : Extracted tuples with all positive elements. Input : test_list = [(-4, 5, 9), (-3, 2, 3), (-3, 5, 6), (4, -6)] Output : [] Explanation : No tuple wit
10 min read
three90RightbarBannerImg