Sometimes, while working with Python list, we can have a problem in which we need to check if all the elements in list abide to a particular condition. This can have application in filtering in web development domain. Let’s discuss certain ways in which this task can be performed.
Method #1 : Using all() We can use all(), to perform this particular task. In this, we feed the condition and the validation with all the elements is checked by all() internally.
Python3
# Python3 code to demonstrate working of # Check if all elements in list follow a condition # Using all() # initializing list test_list = [ 4 , 5 , 8 , 9 , 10 ] # printing list print ( "The original list : " + str (test_list)) # Check if all elements in list follow a condition # Using all() res = all (ele > 3 for ele in test_list) # Printing result print ( "Are all elements greater than 3 ? : " + str (res)) |
The original list : [4, 5, 8, 9, 10] Are all elements greater than 3 ? : True
Time Complexity: O(n)
Auxiliary Space: O(n), where n is length of list.
Method #2 : Using itertools.takewhile() This function can also be used to code solution of this problem. In this, we just need to process the loop till a condition is met and increment the counter. If it matches list length, then all elements meet that condition.
Python3
# Python3 code to demonstrate working of # Check if all elements in list follow a condition # Using itertools.takewhile() import itertools # initializing list test_list = [ 4 , 5 , 8 , 9 , 10 ] # printing list print ( "The original list : " + str (test_list)) # Check if all elements in list follow a condition # Using itertools.takewhile() count = 0 for ele in itertools.takewhile( lambda x: x > 3 , test_list): count = count + 1 res = count = = len (test_list) # Printing result print ( "Are all elements greater than 3 ? : " + str (res)) |
The original list : [4, 5, 8, 9, 10] Are all elements greater than 3 ? : True
Time Complexity: O(n) where n is the number of elements in the list “test_list”. itertools.takewhile() performs n number of operations.
Auxiliary Space: O(1), constant extra space is required
Method #3:Using lambda functions
Python3
# Python3 code to demonstrate working of # Check if all elements in list follow a condition # Using lambda functions # initializing list test_list = [ 4 , 5 , 8 , 9 , 10 ] # printing list print ( "The original list : " + str (test_list)) # Check if all elements in list follow a condition # Using filter res = list ( filter ( lambda x: x > 3 , test_list)) if ( len (res) = = len (test_list)): res = True else : res = False # Printing result print ( "Are all elements greater than 3 ? : " + str (res)) |
The original list : [4, 5, 8, 9, 10] Are all elements greater than 3 ? : True
Time Complexity: O(N)
Auxiliary Space: O(N)
Method #4: Using map() and any()
Explanation: Using map() function, we can apply the given condition to each element in the list and return a list of True or False. The any() function will check if any of the element in the returned list is False, which means that not all elements in the original list follow the condition.
Python3
# initializing list test_list = [ 4 , 5 , 8 , 9 , 10 ] # printing list print ( "The original list : " + str (test_list)) # Check if all elements in list follow a condition # Using map() and any() result = not any ( map ( lambda x: x < = 3 , test_list)) # Printing result print ( "Are all elements greater than 3 ? : " + str (result)) #This code is contributed by Edula Vinay Kumar Reddy |
The original list : [4, 5, 8, 9, 10] Are all elements greater than 3 ? : True
Time Complexity: O(N)
Auxiliary Space: O(N)
Method 5: Using a for loop to iterate over the list and check if each element is greater than 3.
- Initialize a boolean variable result to True.
- Iterate over each element x in the list test_list.
- Check if x is less than or equal to 3, if yes, set result to False and break the loop.
- Print the result.
Python3
# initializing list test_list = [ 4 , 5 , 8 , 9 , 10 ] # printing list print ( "The original list : " + str (test_list)) # Check if all elements in list follow a condition # Using for loop result = True for x in test_list: if x < = 3 : result = False break # Printing result print ( "Are all elements greater than 3 ? : " + str (result)) |
The original list : [4, 5, 8, 9, 10] Are all elements greater than 3 ? : True
Time complexity: O(n) as it iterates over each element of the list once. :
Auxiliary space: O(1) as it only uses a boolean variable and a loop variable