Open In App

Python program for sum of consecutive numbers with overlapping in lists

Last Updated : 02 May, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Given a List, perform summation of consecutive elements, by overlapping.

Input : test_list = [4, 7, 3, 2] 
Output : [11, 10, 5, 6] 
Explanation : 4 + 7 = 11, 7 + 3 = 10, 3 + 2 = 5, and 2 + 4 = 6. 

Input : test_list = [4, 7, 3] 
Output : [11, 10, 7] 
Explanation : 4+7=11, 7+3=10, 3+4=7. 
 

Method 1 : Using list comprehension + zip()

In this, we zip list, with consecutive elements’ using zip() and then perform summation using + operator. The iteration part is done using list comprehension.

Python3




# initializing list
test_list = [4, 7, 3, 2, 9, 2, 1]
 
# printing original list
print("The original list is : " + str(test_list))
 
# using zip() to get pairing.
# last element is joined with first for pairing
res = [a + b for a, b in zip(test_list, test_list[1:] + [test_list[0]])]
 
# printing result
print("The Consecutive overlapping Summation : " + str(res))


Output

The original list is : [4, 7, 3, 2, 9, 2, 1]
The Consecutive overlapping Summation : [11, 10, 5, 11, 11, 3, 5]

Time Complexity: O(n) where n is the number of elements in the list “test_list”. 
Auxiliary Space: O(1) additional space is not needed. 

Method #2 : Using sum() + list comprehension + zip()

In this, we perform the task of getting summation using sum() and rest all functionalities kept similar to the above method.

Python3




# Python3 code to demonstrate working of
# Consecutive overlapping Summation
# Using sum() + list comprehension + zip()
 
# initializing list
test_list = [4, 7, 3, 2, 9, 2, 1]
 
# printing original list
print("The original list is : " + str(test_list))
 
# using sum() to compute elements sum
# last element is joined with first for pairing
res = [sum(sub) for sub in zip(test_list, test_list[1:] + [test_list[0]])] 
 
# printing result
print("The Consecutive overlapping Summation : " + str(res))


Output

The original list is : [4, 7, 3, 2, 9, 2, 1]
The Consecutive overlapping Summation : [11, 10, 5, 11, 11, 3, 5]

Method 3 :  using a for loop 

Python3




# Python3 code to demonstrate working of
# Consecutive overlapping Summation
# Using for loop
 
# initializing list
test_list = [4, 7, 3, 2, 9, 2, 1]
 
# printing original list
print("The original list is : " + str(test_list))
 
# using for loop to compute consecutive overlapping summation
n = len(test_list)
res = [test_list[i] + test_list[(i+1) % n] for i in range(n)]
 
# printing result
print("The Consecutive overlapping Summation : " + str(res))


Output

The original list is : [4, 7, 3, 2, 9, 2, 1]
The Consecutive overlapping Summation : [11, 10, 5, 11, 11, 3, 5]

The time complexity of this approach is O(n), where n is the length of the list, since we iterate over the list once. 
The auxiliary space complexity is also O(n), since we need to store the result list.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads