Python | Calculate difference between adjacent elements in given list
Given a list, the task is to create a new list containing difference of adjacent elements in the given list. Method #1: Using zip()
Python3
# Python code to demonstrate # to calculate difference # between adjacent elements in list # initialising _list ini_list = [ 5 , 4 , 89 , 12 , 32 , 45 ] # printing iniial_list print ("intial_list", str (ini_list)) # Calculating difference list diff_list = [] for x, y in zip (ini_list[ 0 ::], ini_list[ 1 ::]): diff_list.append(y - x) # printing difference list print ("difference list : ", str (diff_list)) |
Output:
intial_list [5, 4, 89, 12, 32, 45] difference list: [-1, 85, -77, 20, 13]
Method #2: Using Naive approach
Python3
# Python code to demonstrate # to calculate difference # between adjacent elements in list # initialising _list ini_list = [ 5 , 4 , 89 , 12 , 32 , 45 ] # printing iniial_list print ("intial_list", str (ini_list)) # Calculating difference list diff_list = [] for i in range ( 1 , len (ini_list)): diff_list.append(ini_list[i] - ini_list[i - 1 ]) # printing difference list print ("difference list : ", str (diff_list)) |
Output:
intial_list [5, 4, 89, 12, 32, 45] difference list: [-1, 85, -77, 20, 13]
Method #3: Using numpy
Python3
# Python code to demonstrate # to calculate difference # between adjacent elements in list import numpy as np # initialising _list ini_list = np.array([ 5 , 4 , 89 , 12 , 32 , 45 ]) # printing iniial_list print ("intial_list", str (ini_list)) # Calculating difference list diff_list = np.diff(ini_list) # printing difference list print ("difference list : ", str (diff_list)) |
Output:
intial_list [ 5 4 89 12 32 45] difference list: [ -1 85 -77 20 13]
Method #4: Using list comprehension(one liner)
To calculate the difference between adjacent elements in a list using list comprehension, you can use the following approach:
Python3
# initializing the list ini_list = [ 5 , 4 , 89 , 12 , 32 , 45 ] # using list comprehension to calculate the difference between adjacent elements diff_list = [ini_list[i + 1 ] - ini_list[i] for i in range ( len (ini_list) - 1 )] # printing the difference list print (diff_list) #This code is contributed by Edula Vinay Kumar Reddy |
Output
[-1, 85, -77, 20, 13]
Time complexity: O(n)
Auxiliary Space: O(n)
Please Login to comment...