# Python program to Flatten Nested List to Tuple List

• Last Updated : 27 Mar, 2021

Given a list of tuples with each tuple wrapped around multiple lists, our task is to write a Python program to flatten the container to a list of tuples.

Input : test_list = [[[(4, 6)]], [[[(7, 4)]]], [[[[(10, 3)]]]]]

Output : [(4, 6), (7, 4), (10, 3)]

Explanation : The surrounded lists are omitted around each tuple.

Input : test_list = [[[(4, 6)]], [[[(7, 4)]]]]

Output : [(4, 6), (7, 4)]

Explanation : The surrounded lists are omitted around each tuple.

Method #1 : Using recursion + isinstance()

In this, the container wrapping is tested to be list using isinstance(). The recursion strategy is used to check for repeated flattening of the list till tuple.

## Python3

 `# Python3 code to demonstrate working of``# Multiflatten Tuple List``# Using recursion + isinstance()`` ` ` ` `res ``=` `[]``def` `remove_lists(test_list):``    ``for` `ele ``in` `test_list:``         ` `        ``# checking for wrapped list``        ``if` `isinstance``(ele, ``list``):``            ``remove_lists(ele)``        ``else``:``            ``res.append(ele)``    ``return` `res`` ` `# initializing list``test_list ``=` `[[[(``4``, ``6``)]], [[[(``7``, ``4``)]]], [[[[(``10``, ``3``)]]]]]``              ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# calling recursive function``res ``=` `remove_lists(test_list)``         ` `# printing result``print``(``"The Flattened container : "` `+` `str``(res))`

Output:

The original list is : [[[(4, 6)]], [[[(7, 4)]]], [[[[(10, 3)]]]]]

The Flattened container : [(4, 6), (7, 4), (10, 3)]

Method #2 : Using yield + recursion

This method performs a similar task using recursion. The generator is used to process intermediate results using yield keyword.

## Python3

 `# Python3 code to demonstrate working of``# Multiflatten Tuple List``# Using yield + recursion`` ` `def` `remove_lists(test_list):``    ``if` `isinstance``(test_list, ``list``):``         ` `        ``# return intermediate to recursive function``        ``for` `ele ``in` `test_list:``            ``yield` `from` `remove_lists(ele)``    ``else``:``        ``yield` `test_list`` ` `# initializing list``test_list ``=` `[[[(``4``, ``6``)]], [[[(``7``, ``4``)]]], [[[[(``10``, ``3``)]]]]]``              ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# calling recursive function``res ``=` `list``(remove_lists(test_list))``         ` `# printing result``print``(``"The Flattened container : "` `+` `str``(res))`

Output:

The original list is : [[[(4, 6)]], [[[(7, 4)]]], [[[[(10, 3)]]]]]

The Flattened container : [(4, 6), (7, 4), (10, 3)]

My Personal Notes arrow_drop_up