Lists are similar to dynamically sized arrays declared in other languages (for example, vector in C++ and ArrayList in Java). Lists do not always have to be homogeneous, which makes it a very useful tool in Python. A single list can contain DataTypes such as Integers, Strings, and Objects. Lists are mutable, which means they can be modified after they are created.
A list of lists is a list object in Python, with each list element being a separate list.
Example:
Input:
listoflists = [ [3 ,6 ,7 ] , [1 , 2, 3 ] , [8 , 7, 6 ] ]
Output:
[3, 6, 7, 1, 2, 3, 8, 7, 6]
Nested Lists to Flat list Conversion
There are several ways to convert nested list to flat list some of them are:
Method#1:Using extend() function
Extend in Python:
The extend() method appends to the end of a list all the elements of an iterable (list, tuple, string, etc.). All iterable elements are added to the end of list1 in this case.
It adds all the contents of the given iterable to the existing list object. Let’s put this to use and convert a list of lists to a flat list.
Approach:
- Take a empty list say flatlist
- Traverse the given list of lists, and for each list within it, extend that list to flatlist.
- print flatlist
Below is the implementation:
# Function to convert list of lists to flat list def convertToFlatList(listoflists): # Taking empty flat list FlatList = [] # Traverse the given listoflists for element in listoflists: # Adding this list to flatlist using extend FlatList.extend(element) # returning the flatlist return FlatList # Driver code # given listoflists listoflists = [[3, 6, 7], [1, 2, 3], [8, 7, 6]] # passing listoflists to convertToFlatList function print(convertToFlatList(listoflists))
Output:
[3, 6, 7, 1, 2, 3, 8, 7, 6]
Method #2:Using append() function
Append():
Python’s append() method adds a single item to an existing list. It does not return a new list of items, but rather modifies the original list by appending the item to the end. The size of the list increases by one after executing the method append on it.
Approach:
- Take a empty list say flatlist
- Traverse the given list of lists, and then traverse it again using a loop for each list within it, appending all the elements to flatlist.
- print flatlist.
Below is the implementation:
# Function to convert list of lists to flat list def convertToFlatList(listoflists): # Taking empty flat list FlatList = [] # Traverse the given listoflists for element in listoflists: # Traverse the inner list for loopelement in element: # appeend this loopelement FlatList.append(loopelement) # returning the flatlist return FlatList # Driver code # given listoflists listoflists = [[3, 6, 7], [1, 2, 3], [8, 7, 6]] # passing listoflists to convertToFlatList function print(convertToFlatList(listoflists))
Output:
[3, 6, 7, 1, 2, 3, 8, 7, 6]
Method #3:Using List Comprehension
We’ll use list comprehension to iterate over a list of lists, then iterate over the individual elements in each internal list. Then, in a new list, add those elements.
Below is the implementation:
# Function to convert list of lists to flat list def convertToFlatList(listoflists): # Using list Comprehension FlatList = [item for element in listoflists for item in element] # returning the flatlist return FlatList # Driver code # given listoflists listoflists = [[3, 6, 7], [1, 2, 3], [8, 7, 6]] # passing listoflists to convertToFlatList function print(convertToFlatList(listoflists))
Output:
[3, 6, 7, 1, 2, 3, 8, 7, 6]
Related Programs:
- python get number of elements in a list list of lists or nested list
- convert 2d numpy array to list of lists in python
- python read csv into a list of lists or tuples or dictionaries import csv to list
- pandas convert a dataframe into a list of rows or columns in python list of lists
- how to create and initialize a list of lists in python
- create numpy array from list tuple or list of lists in python
- python convert dictionary to list of tuples pairs