Skip to content
Related Articles

Related Articles

Python | Maximum absolute difference list of list

View Discussion
Improve Article
Save Article
  • Last Updated : 27 Mar, 2019
View Discussion
Improve Article
Save Article

This particular article focuses on a problem that has utility in competitive as well as day-day programming. Sometimes, we need to get the maximum difference between the like indices when compared with the next list. The maximum difference between the like elements in that index is returned. Let’s discuss certain ways in which this task can be performed.

Method #1 : Using max() + abs() + zip() + list comprehension
This particular problem can also be solved using the combination of the above 4 operations. Here zip function does the dual task of pairing the list and also pairing the like indices for difference, to be computed by abs function and then maximum is found using max function, all bounded by list comprehension.




# Python3 code to demonstrate
# Maximum absolute difference list of list
# using max() + abs() + zip() + list comprehension
  
# initializing list 
test_list = [[3, 4, 5], [4, 6, 8], [1, 9, 2], [3, 7, 10]]
  
# printing original list 
print("The original list : " + str(test_list))
  
# using max() + abs() + zip() + list comprehension
# Maximum absolute difference list of list
res = [max(abs(i - j) for i, j in zip(*ele))
       for ele in zip(test_list, test_list[1:])]
  
# print result
print("The maximum difference sublist : " + str(res))

Output :

The original list : [[3, 4, 5], [4, 6, 8], [1, 9, 2], [3, 7, 10]]
The maximum difference sublist : [3, 6, 8]

 

Method #2 : Using max() + map() + abs + zip()
This task can also be achieved using the combination of above functions, the addition is map function that performs the task of binding of abs operation to the whole list.




# Python3 code to demonstrate
# Maximum absolute difference list of list
# using max() + map() + abs + zip()
  
# initializing list 
test_list = [[3, 4, 5], [4, 6, 8], [1, 9, 2], [3, 7, 10]]
  
# printing original list 
print("The original list : " + str(test_list))
  
# using max() + map() + abs + zip()
# Maximum absolute difference list of list
res = [max(map(abs, (i - j for i, j in zip(x, y))))
         for x, y in zip(test_list, test_list[1:])]
  
# print result
print("The maximum difference sublist : " + str(res))

Output :

The original list : [[3, 4, 5], [4, 6, 8], [1, 9, 2], [3, 7, 10]]
The maximum difference sublist : [3, 6, 8]

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!