Example 1: Using List Comprehension
my_list = [[1], [2, 3], [4, 5, 6, 7]]
flat_list = [num for sublist in my_list for num in sublist]
print(flat_list)
Output
[1, 2, 3, 4, 5, 6, 7]
This is one of the simplest pythonic ways of flattening a list.
- Using list comprehension access the sublist from 
my_list, then access each element of the sublist. - Each element num is stored in 
flat_list. 
To learn more about list comprehension, visit Python List Comprehension.
Example 2: Using Nested for Loops (non pythonic way)
my_list = [[1], [2, 3], [4, 5, 6, 7]]
flat_list = []
for sublist in my_list:
    for num in sublist:
        flat_list.append(num)
print(flat_list)
Output
[1, 2, 3, 4, 5, 6, 7]
- Create an empty list 
flat_list. - Access each element of the sublist using a nested loop and append that element to 
flat_list. 
Example 3: Using itertools package
import itertools
my_list = [[1], [2, 3], [4, 5, 6, 7]]
flat_list = list(itertools.chain(*my_list))
print(flat_list)
Output
[1, 2, 3, 4, 5, 6, 7]
Using itertools module, we can create a flattened list.
chain()method from itertools module returns each element of each iterable (i.e. sub lists ).- list() converts those returned values into a list.
 
Example 4: Using sum()
my_list = [[1], [2, 3], [4, 5, 6, 7]]
flat_list = sum(my_list, [])
print(flat_list)
Output
[1, 2, 3, 4, 5, 6, 7]
- Provide two arguments to the sum() method: 
my_listand an empty list (i.e.[ ]). - sum() combines 
my_listand[ ]to produce a flattened list. 
Example 5: Using lambda and reduce()
from functools import reduce
my_list = [[1], [2, 3], [4, 5, 6, 7]]
print(reduce(lambda x, y: x+y, my_list))
Output
[1, 2, 3, 4, 5, 6, 7]
In the above example, reduce() applies the lambda function to all the elements of my_list.
To learn more about lambda expressions, visit Python Anonymous/Lambda Function.
Also Read: