Given a list of numbers, write a Python program to print all even numbers in the given list.
Example:
Input: list1 = [2, 7, 5, 64, 14]
Output: [2, 64, 14]
Input: list2 = [12, 14, 95, 3]
Output: [12, 14]
Method 1: Using for loop
Iterate each element in the list using for loop and check if num % 2 == 0. If the condition satisfies, then only print the number.
Python3
# Python program to print Even Numbers in a List # list of numbers list1 = [ 10 , 21 , 4 , 45 , 66 , 93 ] # iterating each number in list for num in list1: # checking condition if num % 2 = = 0 : print (num, end = " " ) |
10 4 66
Time Complexity: O(N)
Auxiliary Space: O(1), As constant extra space is used.
Method 2: Using while loop
Python3
# Python program to print Even Numbers in a List # Initializing list and value list1 = [ 10 , 24 , 4 , 45 , 66 , 93 ] num = 0 # Uing while loop while (num < len (list1)): # Cecking condition if list1[num] % 2 = = 0 : print (list1[num], end = " " ) # increment num num + = 1 |
10 24 4 66
Time Complexity: O(N)
Auxiliary Space: O(1), As constant extra space is used.
Method 3: Using list comprehension
Python3
# Python program to print even Numbers in a List # Initializing list list1 = [ 10 , 21 , 4 , 45 , 66 , 93 ] # using list comprehension even_nos = [num for num in list1 if num % 2 = = 0 ] print ( "Even numbers in the list: " , even_nos) |
Even numbers in the list: [10, 4, 66]
Time Complexity: O(N)
Auxiliary Space: O(N), As constant extra space is used.
Method 4: Using lambda expressions
Python3
# Python program to print Even Numbers in a List # list of numbers list1 = [ 10 , 21 , 4 , 45 , 66 , 93 , 11 ] # we can also print even no's using lambda exp. even_nos = list ( filter ( lambda x: (x % 2 = = 0 ), list1)) print ( "Even numbers in the list: " , even_nos) |
Even numbers in the list: [10, 4, 66]
Time Complexity: O(n) as we are iterating through each element of the list only once.
Auxiliary Space: O(n) as a new list is created to store the even numbers from the given list.
Method 5: Using Recursion
Python3
# Python program to print # even numbers in a list using recursion def evennumbers( list , n = 0 ): # base case if n = = len ( list ): exit() if list [n] % 2 = = 0 : print ( list [n], end = " " ) # calling function recursively evennumbers( list , n + 1 ) # Initializing list list1 = [ 10 , 21 , 4 , 45 , 66 , 93 ] print ( "Even numbers in the list:" , end = " " ) evennumbers(list1) |
Even numbers in the list: 10 4 66
Time complexity: O(n), The time complexity of this algorithm is O(n), where n is the length of the list, since it traverses the list only once.
Auxiliary Space: O(n), The auxiliary space is O(n) as the recursion needs to store the list and the parameters of the function in the call stack.
Method 6: Using enumerate function
Python3
list1 = [ 2 , 7 , 5 , 64 , 14 ] for a, i in enumerate (list1): if i % 2 = = 0 : print (i, end = " " ) |
2 64 14
Time Complexity: O(n)
Auxiliary Space: O(1)
Method 7: Using pass
Python3
list1 = [ 2 , 7 , 5 , 64 , 14 ] for i in list1: if (i % 2 ! = 0 ): pass else : print (i, end = " " ) |
2 64 14
Time complexity: O(n), where n is total number of values in list1.
Auxiliary Space: O(1)
Method 8: Using numpy.array
Python3
# Python code To print all even numbers # in a given list using numpy array import numpy as np # Declaring Range temp = [ 2 , 7 , 5 , 64 , 14 ] li = np.array(temp) # printing even numbers using numpy array even_num = li[li % 2 = = 0 ] print (even_num) |
Output:
[ 2 64 14]
Time complexity: O(N), where n is the number of elements in the input list.
Auxiliary space: O(N)
Method 9: Using not and Bitwise & operator
we can find whether a number is even or not using & operator. We traverse all the elements in the list and check if not element&1. If condition satisfied then we say it is an even number
Python3
#python program to print all even no's in a list #defining list with even and odd numbers list1 = [ 39 , 28 , 19 , 45 , 33 , 74 , 56 ] #traversing list using for loop for element in list1: if not element& 1 : #condition to check even or not print (element,end = ' ' ) |
28 74 56
Time Complexity: O(N)
Auxiliary Space: O(1), As constant extra space, is used.
Method 10: Using bitwise | operator
we can find whether a number is even or not using | operator. We traverse all the elements in the list and check if not element | 1 == element. If the condition satisfied, then we say it is an odd number.
Python3
# Python program to print all even no's in a list # Defining list with even and odd numbers # Initializing list list1 = [ 39 , 28 , 19 , 45 , 33 , 74 , 56 ] # Traversing list using for loop for element in list1: # condition to check even or not if element| 1 ! = element: print (element,end = ' ' ) |
28 74 56
Time Complexity: O(N)
Auxiliary Space: O(1), As constant extra space, is used
Method 11: Using reduce method:
Python3
# Using the reduce function from the functools module from functools import reduce list1 = [ 39 , 28 , 19 , 45 , 33 , 74 , 56 ] even_numbers = reduce ( lambda x, y: x + [y] if y % 2 = = 0 else x, list1, []) for num in even_numbers: print (num, end = " " ) #This code is contributed by Jyothi pinjala |
28 74 56
Time Complexity: O(n)
Auxiliary Space: O(n)
Method 12: Using numpy.where() method:
Note: install numpy module using command “pip install numpy”
Algorithm:
- First, we import the NumPy library.
- We define the input list list1.
- Using numpy.array(), we convert the list to a NumPy array arr.
- Next, we use the numpy.where() method to find the indices of the even numbers in the array.
- Using these indices, we extract the even numbers from the array arr using indexing.
- Finally, we print the extracted even numbers.
Python3
import numpy as np # given list list1 = [ 2 , 7 , 5 , 64 , 14 ] # converting list to numpy array arr = np.array(list1) # finding even numbers using where() method even_num = arr[np.where(arr % 2 = = 0 )] # printing even numbers print (even_num) |
Output:
[ 2 64 14]
Time Complexity: O(N) as the numpy.where() method takes O(N) time to find the indices of the even numbers in the array, where N is the length of the array. Indexing the array to extract the even numbers takes O(1) time for each element. Therefore, the overall time complexity of the method is O(N).
Auxiliary Space: O(N) as the space complexity of this method is O(N), as we are creating a new NumPy array to store the input list.
Method 13: Using itertools.filterfalse method
Algorithm:
- Import filterfalse method from itertools.
- Initialize test list.
- Use filterfalse method which works on the condition if the element does not satisfy the condition then it adds to the result else filter out from the result.
- Print the result.
Python3
# Using the filterfalse function from the itertools module from itertools import filterfalse # Test list1 list1 = [ 39 , 28 , 19 , 45 , 33 , 74 , 56 ] # filtering even number even_numbers = filterfalse( lambda y: y % 2 , list1) # Printing result for num in even_numbers: print (num, end = " " ) |
Output:
28 74 56
Time Complexity: O(N) Where N is the length of test list.
Auxiliary Space: O(M) Where M is the length of even_numbers list.