There are many ways to flatten a list in Python, but in this article, I will mention my top five favorites.
Let’s get started.
Way 1
Loop over individual lists and use append to construct a single list
lst = [[1,2], [3,4,5]]
full_list = []
for ls in lst:
for item in ls:
full_list.append(item)
print(full_list)
#output: [1,2,3,4,5]
In this approach, we are using a nested loop (a.k.a. loop inside another loop), which is not considered a good practice. So, let’s move on to the following approach.
Way 2
Using extend function,
lst = [[1,2], [3,4,5]]
full_list = []
for ls in lst:
full_list.extend(ls)
print(full_list)
#output: [1,2,3,4,5]
Similar to extend(…) function, you can also use +=, which will give you the same result.
full_list += ls
Way 3
Using List comprehension,
lst = [[1,2], [3,4,5]]
full_list = [item for ls in lst for item in ls]
print(full_list)
#output: [1,2,3,4,5]
Way 4
Using itertools,
import itertools
lst = [[1,2], [3,4,5]]
full_list = list(itertools.chain.from_iterable(lst))
print(full_list)
Way 5
Using functools,
import operator
import functools
lst = [[1,2], [3,4,5]]
full_list = functools.reduce(operator.iconcat,lst,[])
print(full_list)
#output: [1,2,3,4,5]
I hope you enjoyed learning all these five ways. In case of any doubts, please feel free to check out my video recording.