Python – Test if elements of list are in Min/Max range from other list
Given two lists, the task is to write a Python Program to return true if all elements from second list are in range of min and max values of the first list.
Examples:
Input : test_list = [5, 6, 3, 7, 8, 10, 9], range_list = [4, 7, 9, 6]
Output : True
Explanation : Min and max in list 1 are 3 and 10, all elements are in range in other list.
Input : test_list = [5, 6, 3, 7, 8, 10, 9], range_list = [4, 7, 9, 16]
Output : False
Explanation : Min and max in list 1 are 3 and 10, all elements are not in range in other list.
Method #1 : Using loop + min() + max()
In this, we iterate for all the elements in second list and compare for each element, if any element is less than min or greater than max, result is flagged off and false is returned.
Python3
test_list = [ 5 , 6 , 3 , 7 , 8 , 10 , 9 ]
print ( "The original list is : " + str (test_list))
range_list = [ 4 , 7 , 9 , 6 ]
res = True
for ele in range_list:
if ele max (test_list):
res = False
break
print ( "Are all elements in min/max range? : " + str (res))
|
Output
The original list is : [5, 6, 3, 7, 8, 10, 9]
Are all elements in min/max range? : True
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #2 : Using all() + min() + max()
In this, we check for all the elements to be in range using all(), and min() and max() are used to get the maximum and minimum elements.
Python3
test_list = [ 5 , 6 , 3 , 7 , 8 , 10 , 9 ]
print ( "The original list is : " + str (test_list))
range_list = [ 4 , 7 , 9 , 6 ]
res = all (ele > = min (test_list) and ele < = max (test_list)
for ele in range_list)
print ( "Are all elements in min/max range? : " + str (res))
|
Output
The original list is : [5, 6, 3, 7, 8, 10, 9]
Are all elements in min/max range? : True
Time Complexity: O(n)
Space Complexity: O(n)
Method #3: Using set intersection
- Initialize the list named “test_list” with values [5, 6, 3, 7, 8, 10, 9].
- Print the original list using the “print()” function with a string message.
- Initialize another list named “range_list” with values [4, 7, 9, 6].
- Use the “set()” function to create two sets from the “test_list” and “range_list”.
- Use the “intersection()” method to find the common elements between the two sets.
- Assign the resulting set of common elements to a variable named “common_elements”.
- Use a generator expression with the “all()” function to check if all the elements in the “common_elements” set are within the minimum and maximum range of the “test_list”.
- Assign the resulting boolean value to a variable named “res”.
- Print the result using the “print()” function with a string message.
Python3
test_list = [ 5 , 6 , 3 , 7 , 8 , 10 , 9 ]
print ( "The original list is : " + str (test_list))
range_list = [ 4 , 7 , 9 , 6 ]
common_elements = set (test_list).intersection( set (range_list))
res = all (ele > = min (test_list) and ele < = max (test_list)
for ele in common_elements)
print ( "Are all elements in min/max range? : " + str (res))
|
Output
The original list is : [5, 6, 3, 7, 8, 10, 9]
Are all elements in min/max range? : True
Time complexity: O(n), where n is the length of the longer list between test_list and range_list.
Auxiliary space: O(m), where m is the length of the shorter list between test_list and range_list, as a set of the shorter list is created.
Method #4: Use list comprehension
- Initialize the original list test_list with the values [5, 6, 3, 7, 8, 10, 9].
- Print the original list using the print() function and a string concatenation to display the message “The original list is : ” followed by the list converted to a string using the str() function: print(“The original list is : ” + str(test_list)).
- Initialize the range list range_list with the values [4, 7, 9, 6].
- Create a new filtered list filtered_list using a list comprehension that iterates through the values of range_list and checks if each value is between the minimum and maximum values of test_list using the min() and max() functions: [x for x in range_list if min(test_list) <= x <= max(test_list)].
- Compare the filtered list filtered_list with the original range list range_list using the == operator and assign the result to the variable res: res = filtered_list == range_list.
- Print the result using the print() function and a string concatenation to display the message “Are all elements in min/max range? : ” followed by the result converted to a string using the str() function: print(“Are all elements in min/max range? : ” + str(res)).
Python3
test_list = [ 5 , 6 , 3 , 7 , 8 , 10 , 9 ]
print ( "The original list is : " + str (test_list))
range_list = [ 4 , 7 , 9 , 6 ]
filtered_list = [x for x in range_list if min (test_list) < = x < = max (test_list)]
res = filtered_list = = range_list
print ( "Are all elements in min/max range? : " + str (res))
|
Output
The original list is : [5, 6, 3, 7, 8, 10, 9]
Are all elements in min/max range? : True
Time complexity: O(n), where n is the length of the original list, since we need to iterate through the entire list to find the minimum and maximum values.
Auxiliary space: O(n), since we create a new filtered list that could potentially contain all n elements of the original range list.
Last Updated :
10 May, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...