DEV Community

Aisha Rajput
Aisha Rajput

Posted on • Edited on

List of Lists Python

A list is a mutable data type in python that is organized inside square brackets. This article is about the list of lists Python with examples.
A list of lists in Python means each element of a list is itself a list. A list contains lists as the elements of it.

Table Of Content

How to create a list of lists in Python?

To Enclose multiple lists as an item inside square brackets.
Suppose to create a nested list to add all lists as elements inside a list.
a = [1,2,3],b = [3,4,5],c = [6,7,8] => list_of_list [[1,2,3], [3,4,5], [6,7,8]]

How to make a list of lists from a single list in Python?

Use the abstract syntax Trees to convert the single list into a list of lists in python (Nested List)

import ast

# List Initialization
list1 = ['1 , 2',  '7 , 9',  '34 , 98', '66 , 89347', '723, 54, 0']
# using ast to convert
ListOfLists = [list(ast.literal_eval(x)) for x in list1]
# printing
print(ListOfLists)
Enter fullscreen mode Exit fullscreen mode

Output

[[1, 2], [7, 9], [34, 98], [66, 89347], [723, 54, 0]]
Enter fullscreen mode Exit fullscreen mode

How to generate a list of lists

● Define blank list
● Define the range of the list of lists (item) from 0 to 3
● Create a sub-list inside every nested list of range from 1 to 5
● Print

listoflists = []
for i in range(0,3):
    sublist = []
    for j in range(1,5):
         sublist.append((i,j))
    listoflists.append(sublist)
print (listoflists)
Enter fullscreen mode Exit fullscreen mode

Output

[[(0, 1), (0, 2), (0, 3), (0, 4)], [(1, 1), (1, 2), (1, 3), (1, 4)], [(2, 1), (2, 2), (2, 3), (2, 4)]]

Enter fullscreen mode Exit fullscreen mode

How to convert multiple lists into a list of lists

Call the multiple lists inside the square brackets with lists name that will embed the multiple lists into a lists

list1=[1,2]
list2=[3,4]
list3=[4,5,6]

print("List 1:" +str(list1))
print("List 2:" +str(list2))
print("List 3:" +str(list3))

listoflists=[list1, list2, list3]
print ("List of lists"+str(listoflists))
Enter fullscreen mode Exit fullscreen mode

Output

List 1:[1, 2]
List 2:[3, 4]
List 3:[4, 5, 6]
List of lists[[1, 2], [3, 4], [4, 5, 6]]
Enter fullscreen mode Exit fullscreen mode

How to convert the list of lists into a NumPy array

Import NumPy library that converts a list of lists into a 2-Dimensional array in Python.

# Import the NumPy library
import numpy as nmp
# Create the list of lists
list_of_lists = [['x', 'y', 'z'], [4, 5, 6], [7, 8, 9]]
# Convert it to an array
arr = nmp.array(list_of_lists)
# Print as array
print(arr)

Enter fullscreen mode Exit fullscreen mode

output

[['x' 'y' 'z']
 ['4' '5' '6']
 ['7' '8' '9']]
Enter fullscreen mode Exit fullscreen mode

How to convert into a list of lists to string in python

● Define the lists of characters in a list
● Use the join method that connects each character of a defined list
● Map the two lists as two words

# Convert List of lists to Strings

a= [["M", "y"],["C", "o", "d", "e"]]
res = list(map(''.join, a))
print(*res, sep=" ")
Enter fullscreen mode Exit fullscreen mode

output

My Code
Enter fullscreen mode Exit fullscreen mode

How to convert into a list of lists to set in python

● Use the map method with a set function that removes duplicate items from the list.
● print list of lists as set in python.

# Convert List of lists to Set

a= [[1,2,3,4],["a", "a", "b", "e"],["Sam", "John"]]
res = list(map(set,a))
print(*res, sep=" ")

Enter fullscreen mode Exit fullscreen mode

Output

{1, 2, 3, 4} {'b', 'a', 'e'} {'Sam', 'John'}
Enter fullscreen mode Exit fullscreen mode

How to convert set to list of lists in python

● Use the comprehension method that iterates each object of the set sequentially
● Use “list” to convert a defined set into a list
● n defined the number of nested lists.
● Print a Python list of lists with the help of the comprehension method.

my_set = set({1, 4, 2, 3, 5, 6, 7, 8,})
l = list(my_set)
n = 3   
# using list comprehension 
x = [l[i:i + n] for i in range(0, len(l), n)] 
print(x)
Enter fullscreen mode Exit fullscreen mode

Output

[[1, 2, 3], [4, 5, 6], [7, 8]]
Enter fullscreen mode Exit fullscreen mode

How to convert a list of lists to a List of tuples in python

Tuples stores data in an ordered form.
● Use map function with built-in tuple method to convert the list of lists into tuple in python.

a= [[1,2,3,4],["a", "a", "b", "e"],["Sam", "John", "Morgan"]]
tuples = list(map(tuple, a))
print(tuples)
Enter fullscreen mode Exit fullscreen mode

output

[(1, 2, 3, 4), ('a', 'a', 'b', 'e'), ('Sam', 'John', 'Morgan')]
Enter fullscreen mode Exit fullscreen mode

How to Convert List of Tuples to List of Lists in Python?

Perform the reverse operation to convert tuples into the list of lists.
● Use the built-in list function to convert a list of tuples into a list of lists.
● For loop iterate each element of tuple and print as a nested list.

tuples = [(1, 2, 3), (4, 5, 6), (90, 376, 84)]
lists = [list(a) for a in tuples]
print(lists)
Enter fullscreen mode Exit fullscreen mode

output

[[1, 2, 3], [4, 5, 6], [90, 376, 84]]
Enter fullscreen mode Exit fullscreen mode

How to convert a list of lists to Dataframe in python

DataFrame is a labeled data structure that is 2-Dimensional. It contains columns and rows that may contain different data types inside it.
● Import Pandas library to convert a list of lists to dataframe.
● Define a list of lists.
● Define columns name with the same length of list items. E.g., 3 columns name for 3 data inside the nested list
● Print as a column labeled data with index number automatically.

import pandas as pd
data = [['DSA', 'Python', 80],
          ['DS', 'MATLAB', 70],
          ['OSDC', 'C', 94],
          ['MAPD', 'JAVA', 78]]
df = pd.DataFrame(data, columns=['Subject', 'Language', 'Marks'])
print(df)
Enter fullscreen mode Exit fullscreen mode

Output

Subject Language  Marks
0     DSA   Python     80
1      DS   MATLAB     70
2    OSDC        C     94
3    MAPD     JAVA     78
Enter fullscreen mode Exit fullscreen mode

How to convert DataFrame to a list of lists

Perform the reverse function to convert the dataframe into the list of lists by using a built-in list function .

import pandas as pd
df = pd.DataFrame(
          [['DSA', 'Python', 80],
          ['DS', 'MATLAB', 70],
          ['OSDC', 'C', 94],
          ['MAPD', 'JAVA', 78]], columns= ['Subject', 'Language', 'Marks'])
print ("DataFrame Output")
print(df)

def dfToTable(df:pd.DataFrame) -> list:
 return [list(df.columns)] + df.values.tolist()

print("\n Convert DataFrame to  list of lists :" +str(dfToTable(df)))
Enter fullscreen mode Exit fullscreen mode

output

DataFrame Output
  Subject Language  Marks
0     DSA   Python     80
1      DS   MATLAB     70
2    OSDC        C     94
3    MAPD     JAVA     78

 Convert DataFrame to  list of lists :[['Subject', 'Language', 'Marks'], ['DSA', 'Python', 80], ['DS', 'MATLAB', 70], ['OSDC', 'C', 94], ['MAPD', 'JAVA', 78]]
Enter fullscreen mode Exit fullscreen mode

How to convert a list of lists to Dictionary in python

Dictionary contains keys with their values in ordered form without duplication.
● Define a list of lists
● Use for loop to iterate key with index 0 and value with index 1 and print as a dictionary

a = [['samsung', 1],['OPPO', 3],['iPhone', 2], ['Huawei', 4]]
data_dict = {}
for x in a:
   data_dict[x[0]] = x[1]
print(data_dict)
Enter fullscreen mode Exit fullscreen mode

Output

{'samsung': 1, 'OPPO': 3, 'iPhone': 2, 'Huawei': 4}
Enter fullscreen mode Exit fullscreen mode

How to convert a dictionary to a list of lists in python

● Define the dictionary with key and their values.
● Convert to list of lists with map and list function

dict = {'samsung': 1, 'OPPO': 3, 'iPhone': 2, 'Huawei': 4}
a= list(map(list, dict.items()))
print(a)
Enter fullscreen mode Exit fullscreen mode

Output

[['samsung', 1], ['OPPO', 3], ['iPhone', 2], ['Huawei', 4]]
Enter fullscreen mode Exit fullscreen mode

Sort a List of Lists in Python

Sort a list of lists in ascending order

Sort according to the first element of each nested list. It sorts the list according to the first value of each nested list. This method makes changes to the original list itself.

A = [[5, 90], [4, 89], [2, 70], [1, 0]]
print("Orignal List:" +str(A))
A.sort()
print("New sorted list A is: % s" % (A))
Enter fullscreen mode Exit fullscreen mode

*Output *

Orignal List:[[5, 90], [4, 89], [2, 70], [1, 0]]
New sorted list A is: [[1, 0], [2, 70], [4, 89], [5, 90]]
Enter fullscreen mode Exit fullscreen mode

Sort a list of lists in descending order

Use reverse sorting order to sort a list of lists in descending manner.

A = [[5, 90], [4, 89], [2, 70], [1, 0]]
print("Orignal List:" +str(A))
A.sort(reverse=True)
print("Descending/reverse sorted list A is: % s" % (A))
Enter fullscreen mode Exit fullscreen mode

*Output *

Orignal List:[[5, 90], [4, 89], [2, 70], [1, 0]]
Descending/reverse sorted list A is: [[5, 90], [4, 89], [2, 70], [1, 0]]
Enter fullscreen mode Exit fullscreen mode

Sort a list of lists by length

Sort a list of lists according to the length of each list. “len” function sorts the list with the long length first.

A = [[1, 2, 3, 4],['a', 'b', 'c', 'd'],[1, 5, 6, 'f', 'a']]
A.sort(key=len)
print(A)
Enter fullscreen mode Exit fullscreen mode

output

[[1, 2, 3, 4], ['a', 'b', 'c', 'd'], [1, 5, 6, 'f', 'a']]
Enter fullscreen mode Exit fullscreen mode

Operations of a list of lists

Python Zip List of Lists

Define three lists and zipped them into a list of lists with the help of the zip method

Domain = ['Software', 'Networking', 'Telecommunication']
Students = [8345, 8437, 422]
Companies = ['Microsoft', 'CISCO', 'AT&T']

zipped = zip(Domain, Students, Companies)
print(list(zipped))
Enter fullscreen mode Exit fullscreen mode

Output

[('Software', 8345, 'Microsoft'), ('Networking', 8437, 'CISCO'), ('Telecommunication', 422, 'AT&T')]
Enter fullscreen mode Exit fullscreen mode

Python Unpack List of Lists

Use for loop with map and join function to unpack the zipped list of lists.

members= [('Software', 8345, 'Microsoft'), ('Networking', 8437, 'CISCO'), ('Telecommunication', 422, 'AT&T')]
for item in members:
    print (' '.join(map(str, item)))
Enter fullscreen mode Exit fullscreen mode

*Output *

Software 8345 Microsoft
Networking 8437 CISCO
Telecommunication 422 AT&T
In [ ]:
Enter fullscreen mode Exit fullscreen mode

Transpose list of lists in Python

This method transposes the array to a list with the help of the NumPy library. This method changes the fashion of the array by taking 1st element of each list into 1st list, 2nd element of each array into the 2nd list, and 3rd element of each array into 3rd list in the output.

import numpy as np
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b= np.array(l).T.tolist()
print(b)
Enter fullscreen mode Exit fullscreen mode

Output

[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Enter fullscreen mode Exit fullscreen mode

Append list of lists in python

Append is a built-in function of python programming that helps to append the additional sublist inside the list.

list1 = [["apple"], ["banana", "grapes"],["cherry", "guava"]]
AddList = [1, 2, 3]
list1.append(AddList)
print(list1)
Enter fullscreen mode Exit fullscreen mode

Output

[['apple'], ['banana', 'grapes'], ['cherry', 'guava'], [1, 2, 3]]
Enter fullscreen mode Exit fullscreen mode

Item inside sub list of a list

To append the additional item inside the list of lists with the help of the index value. e.g., a[2].append(4): append 4 in list number 2. ( index starts from 0)

a= [["apple"], ["banana", "grapes"] ,["cherry", "guava"]]
a[2].append(4)
print(a)
Enter fullscreen mode Exit fullscreen mode

Output

[['apple'], ['banana', 'grapes'], ['cherry', 'guava', 4]]
Enter fullscreen mode Exit fullscreen mode

Insert a list inside a list

Insert take two arguments. insert (position, item)
● the position where the list add. e.g., 2
● The item that adds to the list

a = [[1, 2], [3, 4],[5]]
print(a)
list1=[1, 2]
a.insert(2,list1)
print(a)
Enter fullscreen mode Exit fullscreen mode

Output

[[1, 2], [3, 4], [5]]
[[1, 2], [3, 4], [1, 2], [5]]
Enter fullscreen mode Exit fullscreen mode

Extend python list of lists

Use extend function to extend the number of lists inside a list

a = [['Samsung', 'Apple']]
b = [[6, 0, 4, 1]]
a.extend(b)
print (a)
Enter fullscreen mode Exit fullscreen mode

Output

[['Samsung', 'Apple'], [6, 0, 4, 1]]
In [ ]:
Enter fullscreen mode Exit fullscreen mode

Pop list of lists

The pop method removes the item defined item in the index
● Define 3 lists.
● Convert into a list of lists
● Remove item that is on the position of index 1 from that index number is 2
Note: index number starting from 0

list1=[1,2]
list2=[3,4]
list3=[4,5,6]
listoflists=[list1, list2, list3]

print ("Orignal List of lists:"+str(listoflists))
listoflists[2].pop(1)
print ("Popped list:" +str(listoflists))
Enter fullscreen mode Exit fullscreen mode

Output

Orignal List of lists:[[1, 2], [3, 4], [4, 5, 6]]
Popped list:[[1, 2], [3, 4], [4, 6]]
Enter fullscreen mode Exit fullscreen mode

Concatenation list of lists in python

Concatenate a list of lists to convert into a single list, using the sum operation.
● Define the list of lists
● Use sum property to concatenate the lists

z = [["a","b"], ["c"], ["d", "e", "f"]]

result = sum(z, [])
print(result) 
Enter fullscreen mode Exit fullscreen mode

Output

['a', 'b', 'c', 'd', 'e', 'f']
Enter fullscreen mode Exit fullscreen mode

Remove the duplicate item from the list of lists

Except “set” property, there is another method that removes the duplicate item from the list of lists
Use gruopby of itertools that will sort the list of lists one by one and remove duplicate nested lists from the list.

import itertools
a = [[5, 8], [4], [5], [5, 6, 2], [1, 2], [3], [4], [5], [3]]
a.sort()
l= list(k for k,_ in itertools.groupby(a))
print(l)
Enter fullscreen mode Exit fullscreen mode

output

[[1, 2], [3], [4], [5], [5, 6, 2], [5, 8]]
Enter fullscreen mode Exit fullscreen mode

Print list of lists without brackets

This method converts and prints all the items of the list without square brackets and prints them as comma-separated values.

a=[["Cricket", 2], ["Football",6,  5], ["Tennis", 2], ["Hockey", 2] ]
for item in a:
    print(str(item[0:])[1:-1])
Enter fullscreen mode Exit fullscreen mode

output

'Cricket', 2
'Football', 6, 5
'Tennis', 2
'Hockey', 2
In [ ]:
Enter fullscreen mode Exit fullscreen mode

Call the list of lists by using the index number

To access the particular list inside the list, use the list position as an index when calling the print command.
e.g. x [2]: item 3 of list x (index count start from 0)

x = [["a","b"], ["c"], ["d", "e", "f"]]
print(x[2])
Enter fullscreen mode Exit fullscreen mode

Output

['d', 'e', 'f']
Enter fullscreen mode Exit fullscreen mode

Access to the item of the list of lists in python

e.g. x [2][1]: element 2 of list 3 of list

x = [["a","b"], ["c"], ["d", "e", "f"]]
print(x[2][1])
Enter fullscreen mode Exit fullscreen mode

Output

e
Enter fullscreen mode Exit fullscreen mode

Delete the list of lists in python

Use del with position index that wants to delete and print a modified list of list.

x = [["a","b"], ["c"], ["d", "e", "f"]]
del x[1]
print(x)
Enter fullscreen mode Exit fullscreen mode

Output

[['a', 'b'], ['d', 'e', 'f']]

Enter fullscreen mode Exit fullscreen mode

Conclusion

In this article, we have tried to cover all the operations such as all types of Sorting of the list of lists, Conversion of the list of lists, deletion, insertion, extension, concatenation, append, etc.

Top comments (0)