Thursday, October 23, 2025
HomeLanguagesPython – Diagonal element addition among lists

Python – Diagonal element addition among lists

Sometimes, while working with Python lists, we can have a problem in which we need to perform addition of lists in diagonal manner that i.e. adding ith element of 1 list to i + 1 element of other list. This kind of problem can have application in day-day programming. Lets discuss certain ways in which this task can be performed. 

Method #1 : Using loop This is brute force way in which this task can be performed. In this, we iterate one list and test add the i + 1th element of other list and construct the resultant list. 

Python3




# Python3 code to demonstrate
# Diagonal element addition among lists
# using loop
 
# Initializing lists
test_list1 = [1, 6, 8, 5, 3]
test_list2 = [8, 10, 3, 4, 5]
 
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
 
# Diagonal element addition among lists
# using loop
res = []
for idx in range(0, len(test_list1) - 1):
    res.append(test_list1[idx] + test_list2[idx + 1])
 
# printing result
print ("List after diagonal addition : " + str(res))


Output : 

The original list 1 is : [1, 6, 8, 5, 3]
The original list 2 is : [8, 10, 3, 4, 5]
List after diagonal addition : [11, 9, 12, 10]

Time Complexity: O(n*n), where n is the length of the input list. This is because we’re using the loop which has a time complexity of O(n) in the worst case.
Auxiliary Space: O(n), as we’re using additional space res other than the input list itself with the same size of input list. 

  Method #2 : Using zip() + list comprehension This is yet another way in which this task can be performed. In this, we group ith with i+1th element of other list using zip(). The task of performing addition is done in list comprehension. 

Python3




# Python3 code to demonstrate
# Diagonal element addition among lists
# using zip() + list comprehension
 
# Initializing lists
test_list1 = [1, 6, 8, 5, 3]
test_list2 = [8, 10, 3, 4, 5]
 
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
 
# Diagonal element addition among lists
# using zip() + list comprehension
res = [i + j for i, j in zip(test_list1, test_list2[1:])]
 
# printing result
print ("List after diagonal addition : " + str(res))


Output : 

The original list 1 is : [1, 6, 8, 5, 3]
The original list 2 is : [8, 10, 3, 4, 5]
List after diagonal addition : [11, 9, 12, 10]

Time Complexity: O(n), where n is length of input list.
Auxiliary Space: O(n), where n is length of res list. 

Method #3 : Using Numpy
This method makes use of the functionality provided by numpy library in python. The library provides the numpy.add function which performs element wise addition of two arrays.

Python3




#Python3 code to demonstrate
#Diagonal element addition among lists
#importing numpy library
import numpy as np
 
#Initializing lists
test_list1 = [1, 6, 8, 5, 3]
test_list2 = [8, 10, 3, 4, 5]
 
#printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
 
#Diagonal element addition among lists
#using Numpy
res = np.add(test_list1[:-1], test_list2[1:]).tolist()
 
#printing result
print ("List after diagonal addition : " + str(res))
#This code is contributed by Edula Vinay Kumar Reddy


Output :
The original list 1 is : [1, 6, 8, 5, 3]
The original list 2 is : [8, 10, 3, 4, 5]
List after diagonal addition : [11, 9, 12, 10]

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

Explanation:
Here, the add function in numpy performs element wise addition of two arrays. The tlist function is used to convert the result array to a list. The time and space complexity is O(n) as we are iterating the two arrays and constructing a new resultant array.

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS