Python Program to Flatten a Nested List using Recursion
Given a nested list, the task is to write a python program to flatten a nested list using recursion.
Examples:
Input: [[8, 9], [10, 11, ‘geeks’], [13]]
Output: [8, 9, 10, 11, ‘geeks’, 13]
Input: [[‘A’, ‘B’, ‘C’], [‘D’, ‘E’, ‘F’]]
Output: [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’]
Step-by-step Approach:
- Firstly, we try to initialize a variable into the linked list.
- Then, our next task is to pass our list as an argument to a recursive function for flattening the list.
- In that recursive function, if we find the list as empty then we return the list.
- Else, we call the function in recursive form along with its sublists as parameters until the list gets flattened.
- Then finally, we will print the flattened list as output.
Below are some python programs based on the above approach:
Example 1:
# Python program to flatten a nested list
# explicit function to flatten a
# nested list
def flattenList(nestedList):
# check if list is empty
if not(bool(nestedList)):
return nestedList
# to check instance of list is empty or not
if isinstance(nestedList[0], list):
# call function with sublist as argument
return flattenList(*nestedList[:1]) + flattenList(nestedList[1:])
# call function with sublist as argument
return nestedList[:1] + flattenList(nestedList[1:])
# Driver Code
nestedList = [[8, 9], [10, 11, 'geeks'], [13]]
print('Nested List:\n', nestedList)
print("Flattened List:\n", flattenList(nestedList))
|
Output:
Nested List: [[8, 9], [10, 11, 'geeks'], [13]] Flattened List: [8, 9, 10, 11, 'geeks', 13]Example 2:
# Python program to flatten a nested list
# explicit function to flatten a
# nested list
def flattenList(nestedList):
# check if list is empty
if not(bool(nestedList)):
return nestedList
# to check instance of list is empty or not
if isinstance(nestedList[0], list):
# call function with sublist as argument
return flattenList(*nestedList[:1]) + flattenList(nestedList[1:])
# call function with sublist as argument
return nestedList[:1] + flattenList(nestedList[1:])
# Driver Code
nestedList = [['A', 'B', 'C'], ['D', 'E', 'F']]
print('Nested List:\n', nestedList)
print("Flattened List:\n", flattenList(nestedList))
|
Output:
Nested List: [['A', 'B', 'C'], ['D', 'E', 'F']] Flattened List: ['A', 'B', 'C', 'D', 'E', 'F']Example 3:
# Python program to flatten a nested list
# explicit function to flatten a
# nested list
def flattenList(nestedList):
# check if list is empty
if not(bool(nestedList)):
return nestedList
# to check instance of list is empty or not
if isinstance(nestedList[0], list):
# call function with sublist as argument
return flattenList(*nestedList[:1]) + flattenList(nestedList[1:])
# call function with sublist as argument
return nestedList[:1] + flattenList(nestedList[1:])
# Driver Code
nestedList = [[1], [2], [3], [4], [5]]
print('Nested List:\n', nestedList)
print("Flattened List:\n", flattenList(nestedList))
|
Output:
Nested List: [[1], [2], [3], [4], [5]] Flattened List: [1, 2, 3, 4, 5]Python Flatten a List using recursive function
PreviousNextPython's lists can contain other lists.
When one list occurs inside another the inner list is said to be nested inside the outer list.
Each of the inner lists nested within the outer list may also contain nested lists, and those lists may contain additional nested lists to any depth.
For example, the following list includes elements that are nested at several different depths:
Flattening a list is the process of converting a list that may contain multiple levels of nested lists into a list that contains all of the same elements without any nesting.
For example, flattening the list from the previous paragraph results in
The following recursive algorithm can be used to flatten a list named data :
Result
By Pavitra Walia