Given a list of numbers, write a Python program to count Even and Odd numbers in a List. Example:
Input: list1 = [2, 7, 5, 64, 14] Output: Even = 3, odd = 2 Input: list2 = [12, 14, 95, 3] Output: Even = 2, odd = 2
Example 1: count Even and Odd numbers from given list using for loop Iterate each element in the list using for loop and check if num % 2 == 0, the condition to check even numbers. If the condition satisfies, then increase even count else increase odd count.
Python3
list1
=
[
10
,
21
,
4
,
45
,
66
,
93
,
1
]
even_count, odd_count
=
0
,
0
for
num
in
list1:
if
num
%
2
=
=
0
:
even_count
+
=
1
else
:
odd_count
+
=
1
print
[
"Even numbers in the list: "
, even_count]
print
[
"Odd numbers in the list: "
, odd_count]
Output:
Even numbers in the list: 3 Odd numbers in the list: 4
Example 2: Using while loop
Python3
list1
=
[
10
,
21
,
4
,
45
,
66
,
93
,
11
]
even_count, odd_count
=
0
,
0
num
=
0
while
[num <
len
[list1]]:
if
list1[num]
%
2
=
=
0
:
even_count
+
=
1
else
:
odd_count
+
=
1
num
+
=
1
print
[
"Even numbers in the list: "
, even_count]
print
[
"Odd numbers in the list: "
, odd_count]
Output:
Even numbers in the list: 3 Odd numbers in the list: 4
Example 3 : Using Python Lambda Expressions
Python3
list1
=
[
10
,
21
,
4
,
45
,
66
,
93
,
11
]
odd_count
=
len
[
list
[
filter
[
lambda
x: [x
%
2
!
=
0
] , list1]]]
even_count
=
len
[
list
[
filter
[
lambda
x: [x
%
2
=
=
0
] , list1]]]
print
[
"Even numbers in the list: "
, even_count]
print
[
"Odd numbers in the list: "
, odd_count]
Output:
Even numbers in the list: 3 Odd numbers in the list: 4
Example 4 : Using List Comprehension
Python3
list1
=
[
10
,
21
,
4
,
45
,
66
,
93
,
11
]
only_odd
=
[num
for
num
in
list1
if
num
%
2
=
=
1
]
odd_count
=
len
[only_odd]
print
[
"Even numbers in the list: "
,
len
[list1]
-
odd_count]
print
[
"Odd numbers in the list: "
, odd_count]
Output:
Even numbers in the list: 3 Odd numbers in the list: 4
Example 5: Using Recursion
Python3
even_count
=
0
i
=
0
odd_count
=
0
def
evenoddcount[lst]:
global
even_count
global
odd_count
global
i
if
lst[i]
%
2
=
=
0
:
even_count
+
=
1
else
:
odd_count
+
=
1
if
i
in
range
[
len
[lst]
-
1
]:
i
+
=
1
evenoddcount[lst]
else
:
print
[
"Even numbers in the list: "
, even_count]
print
[
"Odd numbers in the list: "
, odd_count]
list1
=
[
10
,
21
,
4
,
45
,
66
,
93
,
1
]
evenoddcount[list1]
Output
Even numbers in the list: 3 Odd numbers in the list: 4
Example 6: Using Bitwise XOR operator
The idea is to check whether the last bit of the number is set or not. If the last bit is set then the number is odd, otherwise even. As we know bitwise XOR Operation of the Number by 1 increments the value of the number by 1 if the number is even otherwise it decrements the value of the number by 1 if the value is odd.
CHECK IF NUMBER IS EVEN OR ODD USING XOR OPERATOR
Python3
list1
=
[
10
,
21
,
4
,
45
,
66
,
93
,
1
]
even_count, odd_count
=
0
,
0
for
num
in
list1:
if
num ^
1
=
=
num
+
1
:
even_count
+
=
1
else
:
odd_count
+
=
1
print
[
"Even numbers in the list: "
, even_count]
print
[
"Odd numbers in the list: "
, odd_count]
Output
Even numbers in the list: 3 Odd numbers in the list: 4
Example 7: Using Bitwise AND operator
The idea is to check whether the last bit of the number is set or not. If the last bit is set then the
number is odd, otherwise even.
As we know bitwise AND Operation of the Number by 1 will be 1, If it is odd because the last bit will be already set. Otherwise, it will give 0 as output.
Python3
list1
=
[
10
,
21
,
4
,
45
,
66
,
93
,
1
]
even_count, odd_count
=
0
,
0
for
num
in
list1:
if
not
num &
1
:
even_count
+
=
1
else
:
odd_count
+
=
1
print
[
"Even numbers in the list: "
, even_count]
print
[
"Odd numbers in the list: "
, odd_count]
Output
Even numbers in the list: 3 Odd numbers in the list: 4
Example 8: Using Bitwise OR operator
The idea is to check whether the last bit of the number is set or not. If the last bit is set then the number is odd, otherwise even. As we know bitwise OR Operation of the Number by 1 increments the value of the number by 1 if the number is even otherwise it will remain unchanged. So, if after OR operation of number with 1 gives a result which is greater than the number then it is even and we will return true otherwise it is odd and we will return false.
Python3
list1
=
[
10
,
21
,
4
,
45
,
66
,
93
,
1
]
even_count, odd_count
=
0
,
0
for
num
in
list1:
if
num |
1
> num:
even_count
+
=
1
else
:
odd_count
+
=
1
print
[
"Even numbers in the list: "
, even_count]
print
[
"Odd numbers in the list: "
, odd_count]
Output
Even numbers in the list: 3 Odd numbers in the list: 4
Method: Using the enumerate function
Python3
lst
=
[
12
,
14
,
95
,
3
];c
=
0
;c1
=
0
for
i,a
in
enumerate
[lst]:
if
a
%
2
=
=
0
:
c
+
=
1
else
:
c1
+
=
1
print
[
"even number count"
,c,
"odd number count"
,c1]
Output
even number count 2 odd number count 2
Auxiliary Space: O[1]