# Python – Flatten Nested Tuples

• Last Updated : 04 Jan, 2022

Sometimes, while working with Python Tuples, we can have a problem in which we need to perform flattening of tuples, which can be nested and undesired. This can have application across many domains such as Data Science and web development. Let’s discuss certain way in which this task can be performed.

```Input : test_tuple = ((4, 7), ((4, 5), ((6, 7), (7, 6))))
Output : ((4, 7), (4, 5), (6, 7), (7, 6))

Input : test_tuple = ((4, 7), (5, 7), (1, 3))
Output : ((4, 7), (5, 7), (1, 3))
```

Method : Using `recursion + isinstance()`
The combination of above functionalities can help us achieve solution to this problem. In this we use recursion to perform the task of digging into each tuple for inner tuples, and for decision of flattening, isinstance() is used depending upon tuple container or primitive data.

## Python3

 `# Python3 code to demonstrate working of ``# Flatten Nested Tuples``# Using recursion + isinstance()`` ` `# helper function``def` `flatten(test_tuple):``     ` `    ``if` `isinstance``(test_tuple, ``tuple``) ``and` `len``(test_tuple) ``=``=` `2` `and` `not` `isinstance``(test_tuple[``0``], ``tuple``):``        ``res ``=` `[test_tuple]``        ``return` `tuple``(res)`` ` `    ``res ``=` `[]``    ``for` `sub ``in` `test_tuple:``        ``res ``+``=` `flatten(sub)``    ``return` `tuple``(res)`` ` `# initializing tuple``test_tuple ``=` `((``4``, ``5``), ((``4``, ``7``), (``8``, ``9``), (``10``, ``11``)), (((``9``, ``10``), (``3``, ``4``))))`` ` `# printing original tuple``print``(``"The original tuple : "` `+` `str``(test_tuple))`` ` `# Flatten Nested Tuples``# Using recursion + isinstance()``res ``=` `flatten(test_tuple)`` ` `# printing result ``print``(``"The flattened tuple : "` `+` `str``(res)) `

Output :

```The original tuple : ((4, 5), ((4, 7), (8, 9), (10, 11)), ((9, 10), (3, 4)))
The flattened tuple : ((4, 5), (4, 7), (8, 9), (10, 11), (9, 10), (3, 4))
```

My Personal Notes arrow_drop_up