Python program to print even numbers in a list
Last Updated :
31 Jul, 2023
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
list1 = [ 10 , 21 , 4 , 45 , 66 , 93 ]
for num in list1:
if num % 2 = = 0 :
print (num, end = " " )
|
Time Complexity: O(N)
Auxiliary Space: O(1), As constant extra space is used.
Method 2: Using while loop
Python3
list1 = [ 10 , 24 , 4 , 45 , 66 , 93 ]
num = 0
while (num < len (list1)):
if list1[num] % 2 = = 0 :
print (list1[num], end = " " )
num + = 1
|
Time Complexity: O(N)
Auxiliary Space: O(1), As constant extra space is used.
Method 3: Using list comprehension
Python3
list1 = [ 10 , 21 , 4 , 45 , 66 , 93 ]
even_nos = [num for num in list1 if num % 2 = = 0 ]
print ( "Even numbers in the list: " , even_nos)
|
Output
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
list1 = [ 10 , 21 , 4 , 45 , 66 , 93 , 11 ]
even_nos = list ( filter ( lambda x: (x % 2 = = 0 ), list1))
print ( "Even numbers in the list: " , even_nos)
|
Output
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
def evennumbers( list , n = 0 ):
if n = = len ( list ):
exit()
if list [n] % 2 = = 0 :
print ( list [n], end = " " )
evennumbers( list , n + 1 )
list1 = [ 10 , 21 , 4 , 45 , 66 , 93 ]
print ( "Even numbers in the list:" , end = " " )
evennumbers(list1)
|
Output
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 = " " )
|
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 = " " )
|
Time complexity: O(n), where n is total number of values in list1.
Auxiliary Space: O(1)
Method 8: Using numpy.array
Python3
import numpy as np
temp = [ 2 , 7 , 5 , 64 , 14 ]
li = np.array(temp)
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
list1 = [ 39 , 28 , 19 , 45 , 33 , 74 , 56 ]
for element in list1:
if not element& 1 :
print (element,end = ' ' )
|
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
list1 = [ 39 , 28 , 19 , 45 , 33 , 74 , 56 ]
for element in list1:
if element| 1 ! = element:
print (element,end = ' ' )
|
Time Complexity: O(N)
Auxiliary Space: O(1), As constant extra space, is used
Method 11: Using reduce method:
Python3
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 = " " )
|
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
list1 = [ 2 , 7 , 5 , 64 , 14 ]
arr = np.array(list1)
even_num = arr[np.where(arr % 2 = = 0 )]
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
from itertools import filterfalse
list1 = [ 39 , 28 , 19 , 45 , 33 , 74 , 56 ]
even_numbers = filterfalse( lambda y: y % 2 , list1)
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.
Please Login to comment...