Open In App

Python | Average of two lists

Improve
Improve
Like Article
Like
Save
Share
Report

The problem of finding a average values in a list is quite common. But sometimes this problem can be extended in two lists and hence becomes a modified problem. This article discusses shorthands by which this task can be performed easily. Let’s discuss certain ways in which this problem can be solved. 

Method #1 : Using sum() + len() + “+” operator 
The average value can be determined by the conventional sum() and len function of python and the extension of one to two lists can be dealt using the “+” operator. 

Python3




# Python3 code to demonstrate
# Average of two lists
# using sum() + len() + "+" operator
 
# initializing lists
test_list1 = [1, 3, 4, 5, 2, 6]
test_list2 = [3, 4, 8, 3, 10, 1]
 
# printing the original lists
print ("The original list 1 is : " + str(test_list1))
print ("The original list 2 is : " + str(test_list2))
 
# Average of two lists
# using sum() + len() + "+" operator
res = sum(test_list1 + test_list2) / len(test_list1 + test_list2)
 
# printing result
print ("The Average of both lists is : " + str(res))


Output

The original list 1 is : [1, 3, 4, 5, 2, 6]
The original list 2 is : [3, 4, 8, 3, 10, 1]
The Average of both lists is : 4.166666666666667

Time Complexity: O(n), where n is the length of the list test_list 
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the res list 

  Method #2 : Using sum() + len() + chain() 
Another method to perform this particular task is by using the chain function which performs the task similar to the “+” operator but using an iterator, hence faster. 

Python3




# Python3 code to demonstrate
# Average of two lists
# using sum() + len() + "+" operator
from itertools import chain
 
# initializing lists
test_list1 = [1, 3, 4, 5, 2, 6]
test_list2 = [3, 4, 8, 3, 10, 1]
 
# printing the original lists
print ("The original list 1 is : " + str(test_list1))
print ("The original list 2 is : " + str(test_list2))
 
# Average of two lists
# using sum() + len() + "+" operator
res = sum(chain(test_list1, test_list2)) / len(list(chain(test_list1, test_list2)))
 
# printing result
print ("The Average of both lists is : " + str(res))


Output : 

The original list 1 is : [1, 3, 4, 5, 2, 6]
The original list 2 is : [3, 4, 8, 3, 10, 1]
The Average of both lists is : 4.166666666666667

Time Complexity: O(n)
Auxiliary Space: O(n)

Method #3 : Using extend() and mean() method of statistics module 
extend() can be used to append a list into the other list and then statistics.mean() can be used to find the arithmetic mean of the new list that contains the elements from both the lists.

Python3




# Python3 code to demonstrate
# Average of two lists
import statistics
 
# initializing lists
test_list1 = [1, 3, 4, 5, 2, 6]
test_list2 = [3, 4, 8, 3, 10, 1]
 
# printing the original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
 
# Average of two lists
x = []
x.extend(test_list1)
x.extend(test_list2)
res = statistics.mean(x)
 
# printing result
print("The Average of both lists is : " + str(res))


Output

The original list 1 is : [1, 3, 4, 5, 2, 6]
The original list 2 is : [3, 4, 8, 3, 10, 1]
The Average of both lists is : 4.166666666666667

Time Complexity: O(n*n), where n is the number of elements in the list “test_list”.
Auxiliary Space: O(n), where n is the number of elements in the list “test_list”.

Approach 4: Using zip() and map()

Using zip() to combine the elements of the two lists
Using map() to add the elements at the same index of both lists and divide by 2
Using sum() to find the sum of the resulting list
Using len() to find the length of the resulting list

Python3




#Using zip() and map()
 
test_list1 = [1, 3, 4, 5, 2, 6]
test_list2 = [3, 4, 8, 3, 10, 1]
 
#Using zip() to combine the elements of the two lists
#Using map() to add the elements at the same index of both lists and divide by 2
#Using sum() to find the sum of the resulting list
#Using len() to find the length of the resulting list
res = sum(map(lambda x: (x[0] + x[1])/2, zip(test_list1, test_list2))) / len(test_list1)
 
#printing result
print("The Average of both lists is : " + str(res))
#This code is contributed by Edula Vinay Kumar Reddy


Output

The Average of both lists is : 4.166666666666667

Time Complexity: O(n) where n is the length of the lists
Auxiliary Space : O(n)

Method #5: Using Functions, for loop

Python3




# function to calculate the average of two lists
def average_lists(list1, list2):
    # check if the lengths of the lists are equal
    if len(list1) != len(list2):
        return None
 
    # calculate the sum of the elements of both lists
    sum = 0
    for i in range(len(list1)):
        sum += list1[i] + list2[i]
 
    # calculate the average and return it
    return sum / (2*len(list1))
 
 
# example usage
list1 = [1, 3, 4, 5, 2, 6]
list2 = [3, 4, 8, 3, 10, 1]
 
average = average_lists(list1, list2)
 
if average is not None:
    print("The Average of both lists is :", average)
else:
    print("Lists are not of equal length")


Output

The Average of both lists is : 4.166666666666667

Time Complexity: O(n) where n is the length of the lists
Auxiliary Space : O(n)



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