Open In App

Python | Pair summation of list elements

Improve
Improve
Like Article
Like
Save
Share
Report

Sometimes, while working with Python list, one can have a problem in which one needs to find perform the summation of list in pair form. This is useful as a subproblem solution of bigger problem in web development and day-day programming. Let’s discuss certain ways in which this problem can be solved. 
Method #1 : Using loop This is the brute force method to perform this particular task. In this, we just iterate the list till last element in skipped manner to get all the pair sums in other list in an iterative way. 

Python3




# Python3 code to demonstrate working of
# Pair summation of list
# Using loop
 
# initializing list
test_list = [4, 5, 8, 9, 10, 17]
 
# printing list
print("The original list : " + str(test_list))
 
# Pair summation of list
# Using loop
res = []
for ele in range(0, len(test_list), 2):
    res.append(test_list[ele] + test_list[ele + 1])
 
# Printing result
print("Pair summation of list : " + str(res))


Output

The original list : [4, 5, 8, 9, 10, 17]
Pair summation of list : [9, 17, 27]

Time Complexity: O(n) where n is the number of elements in the list “test_list”. loop performs n number of operations.
Auxiliary Space: O(n), extra space is required where n is the number of elements in the list

  Method #2 : Using zip() + list comprehension This task can also be performed using the combination of above functionalities. In this, we just iterate the list and the task of combining pairs is performed by zip(). Works only on Python2. 

Python




# Python code to demonstrate working of
# Pair summation of list
# zip() + list comprehension
 
# initializing list
test_list = [4, 5, 8, 9, 10, 17]
 
# printing list
print("The original list : " + str(test_list))
 
# Pair summation of list
# zip() + list comprehension
res = [i + j for i, j in zip(test_list, test_list[1:])[::2]]
 
# Printing result
print("Pair summation of list : " + str(res))


Output

The original list : [4, 5, 8, 9, 10, 17]
Pair summation of list : [9, 17, 27]

Using itertools.zip_longest()

Explanation: Using the itertools library, we can use the zip_longest() function to perform the pairwise summation of the list. This method is useful when we have uneven number of elements in list.

Python3




import itertools
 
test_list = [4, 5, 8, 9, 10, 17]
 
# Print the original list
print("The original list : " + str(test_list))
 
# Use itertools.zip_longest() to pairwise combine the elements of the list
# The fillvalue parameter is used to fill any missing elements in case the length of the list is uneven
res = [sum(pair) for pair in itertools.zip_longest(test_list[::2], test_list[1::2], fillvalue=0)]
 
# Print the pairwise summation of the list
print("Pair summation of list : " + str(res))
 
#This code is contributed by Edula Vinay Kumar Reddy


Output

The original list : [4, 5, 8, 9, 10, 17]
Pair summation of list : [9, 17, 27]

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

Using numpy array + list comprehension

Explanation:

  1. Convert the given list into a numpy array.
  2. Using list comprehension, compute the sum of every two consecutive elements at even indices of the array.
  3. Append the sum to the result list.
  4. Print the result list.

Python3




import numpy as np
 
#initializing list
test_list = [4, 5, 8, 9, 10, 17]
 
#printing list
print("The original list : " + str(test_list))
 
#Pair summation of list
#Using numpy array and list comprehension
arr = np.array(test_list)
res = [arr[i]+arr[i+1] for i in range(0, len(test_list), 2)]
 
#Printing result
print("Pair summation of list : " + str(res))


Output:

The original list : [4, 5, 8, 9, 10, 17]
Pair summation of list : [9, 17, 27]

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



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