Open In App
Related Articles

Python | Maximum sum of elements of list in a list of lists

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Given lists in a list, find the maximum sum of elements of list in a list of lists. Examples:

Input :  [[1, 2, 3], [4, 5, 6], [10, 11, 12], [7, 8, 9]]
Output : 33 
Explanation: sum of all lists in the given list of lists are:
             list1 = 6, list2 = 15, list3 = 33, list4 = 24 
             so the maximum among these is of 

Input : [[3, 4, 5], [1, 2, 3], [0, 9, 0]]
Output : 12

Method 1 : Traversal of list in lists

We can traverse in the lists inside the list and sum up all the elements in a given list and by max function get the maximum of sum of all elements in lists of list. 

Python

# Python program to find the
# list in a list of lists whose
# sum of elements is the highest
# using traversal
 
def maximumSum(list1):
    maxi = 0
 
    # traversal in the lists
    for x in list1:
        sum = 0
        # traversal in list of lists
        for y in x:
            sum+= y    
        maxi = max(sum, maxi)
         
    return maxi
     
# driver code 
list1 = [[1, 2, 3], [4, 5, 6], [10, 11, 12], [7, 8, 9]]
print maximumSum(list1)

                    

Output
33

Time Complexity: O(n*m) where n is the number of lists and m is the maximum size of the list.
Auxiliary Space: O(1)

Method 2 : Traversal of list

Traverse in the outer list only, and sum all elements in the inner lists by using sum() function, find the sum of all the lists and get the maximum of all the sum calculated. 

Python

# Python program to find the
# list in a list of lists whose
# sum of elements is the highest
# using sum and max function and traversal
 
def maximumSum(list1):
    maxi = 0
    # traversal
    for x in list1:
        maxi = max(sum(x), maxi)
         
    return maxi
     
 
# driver code 
list1 = [[1, 2, 3], [4, 5, 6], [10, 11, 12], [7, 8, 9]]
print maximumSum(list1)

                    

Output
33

Time Complexity: O(n*m) where n is the number of lists and m is the maximum size of the list.
Auxiliary Space: O(1)

Method 3 : Sum and Max function

sum(max(list1, key=sum))

The above syntax of max() function allows us to find the sum of list in list using the key=sum. max(list1, key=sum), this finds the list with maximum sum of elements and then sum(max(list1, key=sum)) returns us the sum of that list. 

Python

# Python program to find the
# list in a list of lists whose
# sum of elements is the highest
# using sum and max function
 
def maximumSum(list1):
    return(sum(max(list1, key = sum)))
     
 
# driver code 
list1 = [[1, 2, 3], [4, 5, 6], [10, 11, 12], [7, 8, 9]]
print maximumSum(list1)

                    

Output
33

Time Complexity: O(n*m) where n is the number of lists and m is the maximum size of the list.
Auxiliary Space: O(1)

                                                                  Method 4 : Using sum() and sort() methods

Python3

# Python program to find the
# list in a list of lists whose
# sum of elements is the highest
# using traversal
 
def maximumSum(list1):
    x=[]
    for i in list1:
        x.append(sum(i))
    x.sort()
    return x[-1]
         
     
# driver code
list1 = [[1, 2, 3], [4, 5, 6], [10, 11, 12], [7, 8, 9]]
print(maximumSum(list1))

                    

Output
33

Time Complexity : O(NlogN)
Auxiliary Space : O(N)

Method 5 : Using reduce()

This method uses the reduce() function to iterate over the list of lists and a lambda function to compare the sums of each list. The lambda function returns the list with the larger sum, and the reduce function keeps track of the maximum sum by repeatedly applying the lambda function to the list of lists. The final result is the sum of the list with the maximum sum.

Here is another approach using the reduce() function and a lambda function:

Python3

from functools import reduce
 
def maximum_sum(lists):
    # Use the reduce function to calculate the maximum sum
    # by comparing the sums of each list
    max_sum = reduce(lambda x, y: x if sum(x) > sum(y) else y, lists)
    return sum(max_sum)
 
lists = [[1, 2, 3], [4, 5, 6], [10, 11, 12], [7, 8, 9]]
print(maximum_sum(lists))  # 33
#This code is contributed by Edula Vinay Kumar Reddy

                    

Output
33

Time complexity: O(n*m) where n is the number of lists and m is the maximum size of the list.
Space complexity: O(1)



Last Updated : 11 Jan, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads