Skip to content
Related Articles
Open in App
Not now

Related Articles

Python | Program to count number of lists in a list of lists

Improve Article
Save Article
  • Last Updated : 02 Jan, 2023
Improve Article
Save Article

Given a list of lists, write a Python program to count the number of lists contained within the list of lists. 

Examples:

Input :  [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
Output : 3
Input : [[1], ['Bob'], ['Delhi'], ['x', 'y']]
Output : 4

Method #1 : Using len() 

Python3




# Python3 program to Count number
# of lists in a list of lists
 
 
def countList(lst):
    return len(lst)
 
 
# Driver code
lst = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
print(countList(lst))

Output:

3

Method #2: Using type() 

Use a for loop and in every iteration to check if the type of the current item is a list or not, and accordingly increment ‘count’ variable. This method has a benefit over approach #1, as it works well for a list of heterogeneous elements. 

Python3




# Python3 program to Count number
# of lists in a list of lists
 
 
def countList(lst):
    count = 0
    for el in lst:
        if type(el) == type([]):
            count += 1
 
    return count
 
 
# Driver code
lst = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
print(countList(lst))

Output:

3

A one-liner alternative approach for the above code is given below: 

Python3




def countList(lst):
    return sum(type(el)== type([]) for el in lst)

Method #3 : Using isinstance() method 

Python3




# Python3 program to Count number
# of lists in a list of lists
 
def countList(lst):
    return sum(isinstance(i, list) for i in lst)
     
# Driver code
lst = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
print(countList(lst))

Output:

3

Method#4: Using the list comprehension

Python3




lst = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
x=[i for i in lst]
print(len(x))

Output

3

Method #5: Using enumerate function 

Python3




lst = ["[1, 2, 3]", "[4, 5]", "[6, 7, 8, 9]"]
x=[list(i) for i in enumerate(lst)]
print(len(x))

Output

3

Method #6: Using lambda function

Python3




lst = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
x=list(filter(lambda i: (i),lst))
print(len(x))

Output

3

Method #7: Using map()

Python3




lst = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
x=list(map(str,lst) )
print(len(x))

Output

3

Method #8: Using eval() 

Python3




lst = ["[1, 2, 3]", "[4, 5]", "[6, 7, 8, 9]"]
x=list(map(eval,lst) )
print(len(x))

Output

3

Method #9 : Using recursion

This approach involves reducing the length of the list by 1 at each recursive step and increasing the count by 1 if the first element of the list is a list. The function returns 0 when the list is empty.

Python3




def count_lists(lst):
  if lst == []:
    return 0
  return 1 + count_lists(lst[1:])
 
lst = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
print(count_lists(lst))
#This code is contributed by Edula Vinay Kumar Reddy

Output

3

The time complexity of the recursive approach to count the number of lists in a list of lists is O(n), where n is the total number of elements in the list of lists. This is because the function processes each element of the list exactly once.

The space complexity of the recursive approach is O(n) as well, since the maximum depth of the recursion tree is n in the worst case. For example, if the list of lists is a list of n single-element lists, the recursion tree will have a maximum depth of n. At each level of the tree, a new frame is added to the call stack, which takes up space in memory.


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!