Python - Remove nested records from tuple
Last Updated : 27 Apr, 2023
Sometimes, while working with records, we can have a problem in which an element of a record is another tuple records and we might have to remove the nested records. This is a problem which does not occur commonly, but having a solution to it is useful. Let’s discuss certain way in which this task can be performed.
Method 1: Using loop + isinstance() + enumerate()
This problem can be solved using the above functionalities. In this, we just loop through the elements using enumerate() to get the index count of it and check the type using isinstance() and recreate the new tuple by checking ignoring tuple records.
Python3 # Python3 code to demonstrate working of # Remove nested records # using isinstance() + enumerate() + loop # initialize tuple test_tup = (1, 5, 7, (4, 6), 10) # printing original tuple print("The original tuple : " + str(test_tup)) # Remove nested records # using isinstance() + enumerate() + loop res = tuple() for count, ele in enumerate(test_tup): if not isinstance(ele, tuple): res = res + (ele, ) # printing result print("Elements after removal of nested records : " + str(res))
OutputThe original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : (1, 5, 7, 10)
Time Complexity: O(n), where n is the length of the list test_tup
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the res list
Method 2 : Using type() method
Python3 # Python3 code to demonstrate working of # Remove nested records # initialize tuple test_tup = (1, 5, 7, (4, 6), 10) # printing original tuple print("The original tuple : " + str(test_tup)) # Remove nested records res=[] for i in test_tup: if not type(i) is tuple: res.append(i) res=tuple(res) # printing result print("Elements after removal of nested records : " + str(res))
OutputThe original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : (1, 5, 7, 10)
Time complexity: O(n), where n is the number of elements in the tuple.
Auxiliary Space: O(n), where n is the number of elements in the tuple.
Method 3 : Using filter()+lambda functions
Python3 # Python3 code to demonstrate working of # Remove nested records # initialize tuple test_tup = (1, 5, 7, (4, 6), 10) # printing original tuple print("The original tuple : " + str(test_tup)) # Remove nested records res = list(filter(lambda x: not isinstance(x, tuple), test_tup)) # printing result print("Elements after removal of nested records : " + str(res))
OutputThe original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10]
Time Complexity:O(N)
Auxiliary Space: O(N)
Method 4: Using list comprehension
Python3 # Python3 code to demonstrate working of # Remove nested records # initialize tuple test_tup = (1, 5, 7, (4, 6), 10) # printing original tuple print("The original tuple : " + str(test_tup)) # Remove nested records res = [x for x in test_tup if not isinstance(x, tuple)] # printing result print("Elements after removal of nested records : " + str(res)) #This code is contributed by Edula Vinay Kumar Reddy
OutputThe original tuple : (1, 5, 7, (4, 6), 10) Elements after removal of nested records : [1, 5, 7, 10]
Time Complexity: O(N)
Auxiliary Space: O(N)
Python3 from functools import reduce test_tup = (1, 5, 7, (4, 6), 10) # printing original tuple print("The original tuple : " + str(test_tup)) res = reduce(lambda acc, x: acc + (x,) if not isinstance(x, tuple) else acc, test_tup, ()) print(res) #This code is contributed by Jyothi pinjala.
OutputThe original tuple : (1, 5, 7, (4, 6), 10) (1, 5, 7, 10)
Time Complexity: O(N)
Auxiliary Space: O(N)
Method 5: Method 5: Using itertools.chain()
Use the itertools.chain() function to flatten the nested tuple and create a new tuple without the inner tuples.
Python3 import itertools test_tup = (1, 5, 7, (4, 6), 10) print("The original tuple: " + str(test_tup)) res = tuple(itertools.chain(*([x] if not isinstance(x, tuple) else x for x in test_tup))) print(res)
OutputThe original tuple: (1, 5, 7, (4, 6), 10) (1, 5, 7, 4, 6, 10)
Time complexity: O(n), where n is the number of elements in the tuple.
Auxiliary space: O(n), as it creates a new tuple of the same length as the original tuple.
Method 6: using recursion
- Define a function flatten_tuple that takes a tuple as an argument.
- Create an empty list result.
- For each element elem in the input tuple, check if it is a tuple using isinstance(elem, tuple).
- If elem is not a tuple, append it to the result list.
- If elem is a tuple, recursively call the flatten_tuple function on it and extend the result list with the flattened tuple.
- Return the flattened result list as a tuple.
Python3 def flatten_tuple(tup): """ Recursively flatten a tuple of any depth into a single tuple. Args: tup: A tuple to be flattened. Returns: A flattened tuple. """ result = [] for elem in tup: if not isinstance(elem, tuple): result.append(elem) else: result.extend(flatten_tuple(elem)) return tuple(result) # Driver code to test the function test_tup = (1, 5, 7, (4, 6), 10) print("The original tuple: " + str(test_tup)) # Call the function to flatten the tuple res = flatten_tuple(test_tup) # Print the flattened tuple print(res)
OutputThe original tuple: (1, 5, 7, (4, 6), 10) (1, 5, 7, 4, 6, 10)
Time complexity: O(n), where n is the length of given test_tup
Auxiliary space: O(n) since it creates a new list to store the flattened elements.
Similar Reads
Python - Remove K from Records
Sometimes, while working with Python tuples, we can have a problem in which we need to remove all K from lists. This task can have application in many domains such as web development and day-day programming. Let's discuss certain ways in which this task can be performed. Input : test_list = [(5, 6,
5 min read
Python - Remove None Nested Records
Sometimes, while working with Python Records, can have problem in which we need to perform the removal of data which have all key's values as None in nested records. This kind of problem can have application in data preprocessing. Lets discuss certain ways in which this task can be performed. Method
4 min read
Python - Remove records if Key not present
Sometimes, while working with Python dictionaries, we can have a problem in which we need to remove all the dictionaries in which a particular key is not present. This kind of problem can have applications in many domains such as day-day programming and data domain. Let's discuss certain ways in whi
6 min read
Python - Remove all duplicate occurring tuple records
Sometimes, while working with records, we can have a problem of removing those records which occur more than once. This kind of application can occur in web development domain. Letâs discuss certain ways in which this task can be performed. Method #1 : Using list comprehension + set() + count() Init
6 min read
Python | Nested Records Modulo
Sometimes, while working with records, we can have a problem in which we require to perform index wise remainder of tuple elements. This can get complicated with tuple elements to be tuple and inner elements again be tuple. Letâs discuss certain ways in which this problem can be solved. Method #1 :
5 min read
Python - Convert String Records to Tuples Lists
Sometimes, while working with data, we can have problem in which we need to convert the data list which in string format to list of tuples. This can occur in domains in which we have cross type inputs. Lets discuss certain ways in which this task can be performed. Method #1 : Using loop + eval() The
7 min read
Python - Remove Record if Nth Column is K
Sometimes while working with a list of records, we can have a problem in which we need to perform the removal of records on the basis of the presence of certain elements at the Nth position of the record. Let us discuss certain ways in which this task can be performed. Method #1: Using loop This is
10 min read
Python | Convert tuple records to single string
Sometimes, while working with data, we can have a problem in which we have tuple records and we need to change it's to comma-separated strings. These can be data regarding names. This kind of problem has its application in the web development domain. Let's discuss certain ways in which this problem
6 min read
Python - Remove Consecutive K element records
Sometimes, while working with Python records, we can have a problem in which we need to remove records on the basis of presence of consecutive K elements in tuple. This kind of problem is peculiar but can have applications in data domains. Let's discuss certain ways in which this task can be perform
7 min read
Python - Remove Similar Rows from Tuple Matrix
Sometimes, while working with Tuple Matrix, we can have a problem in which we get lots of data, which are similar, i.e elements are same in rows, just the ordering of tuples is different, it's sometimes, desired to get them removed. This kind of problem can have application in domains such as web de
9 min read