Python | Average of two lists
Last Updated :
11 May, 2023
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
test_list1 = [ 1 , 3 , 4 , 5 , 2 , 6 ]
test_list2 = [ 3 , 4 , 8 , 3 , 10 , 1 ]
print ( "The original list 1 is : " + str (test_list1))
print ( "The original list 2 is : " + str (test_list2))
res = sum (test_list1 + test_list2) / len (test_list1 + test_list2)
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
from itertools import chain
test_list1 = [ 1 , 3 , 4 , 5 , 2 , 6 ]
test_list2 = [ 3 , 4 , 8 , 3 , 10 , 1 ]
print ( "The original list 1 is : " + str (test_list1))
print ( "The original list 2 is : " + str (test_list2))
res = sum (chain(test_list1, test_list2)) / len ( list (chain(test_list1, test_list2)))
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
import statistics
test_list1 = [ 1 , 3 , 4 , 5 , 2 , 6 ]
test_list2 = [ 3 , 4 , 8 , 3 , 10 , 1 ]
print ( "The original list 1 is : " + str (test_list1))
print ( "The original list 2 is : " + str (test_list2))
x = []
x.extend(test_list1)
x.extend(test_list2)
res = statistics.mean(x)
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
test_list1 = [ 1 , 3 , 4 , 5 , 2 , 6 ]
test_list2 = [ 3 , 4 , 8 , 3 , 10 , 1 ]
res = sum ( map ( lambda x: (x[ 0 ] + x[ 1 ]) / 2 , zip (test_list1, test_list2))) / len (test_list1)
print ( "The Average of both lists is : " + str (res))
|
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
def average_lists(list1, list2):
if len (list1) ! = len (list2):
return None
sum = 0
for i in range ( len (list1)):
sum + = list1[i] + list2[i]
return sum / ( 2 * len (list1))
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)
Share your thoughts in the comments
Please Login to comment...