![Trending Articles on Technical and Non Technical topics](/images/trending_categories.jpeg)
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Python - Ways to flatten a 2D list
A list is a collection which is ordered and changeable. In Python lists are written with square brackets. You access the list items by referring to the index number. Negative indexing means beginning from the end, -1 refers to the last item. You can specify a range of indexes by specifying where to start and where to end the range. When specifying a range, the return value will be a new list with the specified items.
Example
# using chain.from_iterables # import chain from itertools import chain ini_list = [[1, 2, 3], [3, 6, 7], [7, 5, 4]] # printing initial list print ("initial list ", str(ini_list)) # converting 2d list into 1d # using chain.from_iterables flatten_list = list(chain.from_iterable(ini_list)) # printing flatten_list print ("final_result", str(flatten_list)) # using list comprehension # import chain from itertools import chain ini_list = [[1, 2, 3], [3, 6, 7], [7, 5, 4]] # printing initial list print ("initial list ", str(ini_list)) # converting 2d list into 1d # using list comprehension flatten_list = [j for sub in ini_list for j in sub] # printing flatten_list print ("final_result", str(flatten_list)) # using functools.reduce # import functools from functools import reduce ini_list = [[1, 2, 3], [3, 6, 7], [7, 5, 4]] # printing initial list print ("initial list ", str(ini_list)) # converting 2d list into 1d # using functools.reduce flatten_list = reduce(lambda z, y :z + y, ini_list) # printing flatten_list print ("final_result", str(flatten_list)) # using sum ini_list = [[1, 2, 3], [3, 6, 7], [7, 5, 4]] # printing initial list print ("initial list ", str(ini_list)) # converting 2d list into 1d flatten_list = sum(ini_list, []) # printing flatten_list print ("final_result", str(flatten_list)) ini_list=[[1, 2, 3], [3, 6, 7], [7, 5, 4]] #Using lambda flatten_list = lambda y:[x for a in y for x in flatten_list(a)] if type(y) is list else [y] print("Initial list ",ini_list) #priniting initial list print("Flattened List ",flatten_list(ini_list)) # printing flattened list
Output
('initial list ', '[[1, 2, 3], [3, 6, 7], [7, 5, 4]]') ('final_result', '[1, 2, 3, 3, 6, 7, 7, 5, 4]') ('initial list ', '[[1, 2, 3], [3, 6, 7], [7, 5, 4]]') ('final_result', '[1, 2, 3, 3, 6, 7, 7, 5, 4]') ('initial list ', '[[1, 2, 3], [3, 6, 7], [7, 5, 4]]') ('final_result', '[1, 2, 3, 3, 6, 7, 7, 5, 4]') ('initial list ', '[[1, 2, 3], [3, 6, 7], [7, 5, 4]]') ('final_result', '[1, 2, 3, 3, 6, 7, 7, 5, 4]') ('Initial list ', [[1, 2, 3], [3, 6, 7], [7, 5, 4]]) ('Flattened List ', [1, 2, 3, 3, 6, 7, 7, 5, 4])
Advertisements