Skip to content
Related Articles
Open in App
Not now

Related Articles

Python – Row with Minimum difference in extreme values

Improve Article
Save Article
  • Last Updated : 11 Oct, 2020
Improve Article
Save Article

Given a Matrix, extract the rows with a minimum difference in extreme values.

Examples:

Input : test_list = [[4, 10, 18], [5, 0], [1, 4, 6], [19, 2]] 
Output : [[1, 4, 6], [5, 0]] 
Explanation : 6 – 1 = 5, 5 – 0 = 5, is minimum difference between extreme values.
 

Input : test_list = [[4, 10, 18], [5, 0], [2, 4, 6], [19, 2]] 
Output : [[2, 4, 6]] 
Explanation : 6 – 2 = 4, is min diff.
 

Method #1 : Using list comprehension + min()

In this, we compute minimum difference between extreme values, and then use list comprehension to get particular row with that value difference between extreme values.

Python3




# Python3 code to demonstrate working of 
# Matrix Minimum difference in extreme values row
# Using min() + list comprehension
  
# initializing list
test_list = [[4, 10, 18], [5, 3, 10], [1, 4, 6], [19, 2]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# getting min value 
min_val = min([max(sub) - min(sub) for sub in test_list])
  
# using list comprehension to filter 
res = [sub for sub in test_list if max(sub) - min(sub) == min_val]
  
# printing result 
print("Rows with Minimum difference in extreme values : " + str(res))


Output:

The original list is : [[4, 10, 18], [5, 3, 10], [1, 4, 6], [19, 2]]
Rows with Minimum difference in extreme values : [[1, 4, 6]]

Method #2 : Using min() + list comprehension + filter() + lambda

In this, we perform task of filtering comparing with minimum value using filter() + lambda.

Python3




# Python3 code to demonstrate working of 
# Matrix Minimum difference in extreme values row
# Using min() + list comprehension + filter() + lambda
  
# initializing list
test_list = [[4, 10, 18], [5, 3, 10], [1, 4, 6], [19, 2]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# getting min value 
min_val = min([max(sub) - min(sub) for sub in test_list])
  
# using filter() + lambda to filter 
res = list(filter(lambda sub : max(sub) - min(sub) == min_val, test_list))
  
# printing result 
print("Rows with Minimum difference in extreme values : " + str(res))


Output:

The original list is : [[4, 10, 18], [5, 3, 10], [1, 4, 6], [19, 2]]
Rows with Minimum difference in extreme values : [[1, 4, 6]]


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!