A lot of times, while working with data, we have a problem in which we need to make sure that a container or a list is having elements in just one range. This has application in Data Domains. Let’s discuss certain ways in which this task can be performed.
Method #1 : Using loop This is brute force method in which this task can be performed. In this, we just check using if condition if element falls in range, and break if we find even one occurrence out of range.
Python3
# Python3 code to demonstrate # Test if List contains elements in Range # using loop # Initializing loop test_list = [ 4 , 5 , 6 , 7 , 3 , 9 ] # printing original list print ("The original list is : " + str (test_list)) # Initialization of range i, j = 3 , 10 # Test if List contains elements in Range # using loop res = True for ele in test_list: if ele < i or ele > = j : res = False break # printing result print ("Does list contain all elements in range : " + str (res)) |
The original list is : [4, 5, 6, 7, 3, 9] Does list contain all elements in range : True
Time Complexity: O(n)
Auxiliary Space: O(1)
Method #2 : Using all() This is alternative and shorter way to perform this task. In this we use check operation as a parameter to all() and returns True when all elements in range.
Python3
# Python3 code to demonstrate # Test if List contains elements in Range # using all() # Initializing loop test_list = [ 4 , 5 , 6 , 7 , 3 , 9 ] # printing original list print ("The original list is : " + str (test_list)) # Initialization of range i, j = 3 , 10 # Test if List contains elements in Range # using all() res = all (ele > = i and ele < j for ele in test_list) # printing result print ("Does list contain all elements in range : " + str (res)) |
The original list is : [4, 5, 6, 7, 3, 9] Does list contain all elements in range : True
Time complexity: O(n), where n is the length of the input list.
Auxiliary space: O(1), as the code uses a constant amount of additional space regardless of the size of the input.
Method #3 : Using list comprehension and len()
This method uses a simple list comprehension which returns all elements which fall out of the given range. And then the length of this list is taken, if it is 0 that means all elements are in range and returns True, else returns False.
Python3
#Python3 code to demonstrate #Test if List contains elements in Range #using List Comprehension and len() #Initializing list test_list = [ 4 , 5 , 6 , 7 , 3 , 9 ] #printing original list print ( "The original list is : " + str (test_list)) #Initialization of range i, j = 3 , 10 #Test if List contains elements in Range #using List Comprehension and len() out_of_range = len ([ele for ele in test_list if ele < i or ele > = j]) = = 0 #printing result print ( "Does list contain all elements in range : " + str (out_of_range)) |
The original list is : [4, 5, 6, 7, 3, 9] Does list contain all elements in range : True
Time complexity: O(n)
Auxiliary Space: O(n)
Method 4: Use the built-in set() function
Step-by-step approach:
- Initialize a list test_list containing some elements.
- Initialize two variables i and j to define a range.
- Check if any element in test_list is within the range defined by i and j.
- If any element is within the range, set the result res to True. Otherwise, set res to False.
- Print the result of whether any element in the list is within the range.
Python3
# Python3 code to demonstrate # Test if List contains elements in Range # using any() # Initializing list and range boundaries test_list = [ 4 , 5 , 6 , 7 , 3 , 9 ] i, j = 3 , 10 # Checking if any element in the list is within the range res = any (i < = x < j for x in test_list) # Printing the result print ( "Does list contain any element in range: " + str (res)) |
Does list contain any element in range: True
Time complexity: O(n), where n is the length of the list.
Auxiliary space: O(1) because it only uses a few variables to store the range boundaries and the result.
Method 5: Using filter() function
Step-by-step approach:
- Define a function that takes an integer x and returns True if it lies within the given range, i.e., i <= x < j.
- Use the filter() function to filter out the elements of the list that satisfy the above condition.
- Check if the filtered list is not empty using the bool() function.
- Assign the result to a variable ‘res’.
- Print the final result.
Python3
# Python3 code to demonstrate # Test if List contains elements in Range # using filter() # Initializing list and range boundaries test_list = [ 4 , 5 , 6 , 7 , 3 , 9 ] i, j = 3 , 10 # Function to check if x lies within the given range def in_range(x): return i < = x < j # Filtering out the elements that lie within the range filtered_list = list ( filter (in_range, test_list)) # Checking if the filtered list is not empty res = bool (filtered_list) # Printing the result print ( "Does list contain any element in range: " + str (res)) |
Does list contain any element in range: True
Time complexity: O(n)
Auxiliary space: O(n) (to store the filtered list)