Hướng dẫn recursive flatten list python

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:

Python3

def flattenList[nestedList]:

    if not[bool[nestedList]]:

        return nestedList

    if isinstance[nestedList[0], list]:

        return flattenList[*nestedList[:1]] + flattenList[nestedList[1:]]

    return nestedList[:1] + flattenList[nestedList[1:]]

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:

Python3

def flattenList[nestedList]:

    if not[bool[nestedList]]:

        return nestedList

    if isinstance[nestedList[0], list]:

        return flattenList[*nestedList[:1]] + flattenList[nestedList[1:]]

    return nestedList[:1] + flattenList[nestedList[1:]]

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:

Python3

def flattenList[nestedList]:

    if not[bool[nestedList]]:

        return nestedList

    if isinstance[nestedList[0], list]:

        return flattenList[*nestedList[:1]] + flattenList[nestedList[1:]]

    return nestedList[:1] + flattenList[nestedList[1:]]

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]

Chủ Đề