Python – Find Kth Even Element

Given a List, extract Kth occurrence of Even Element.
Input : test_list = [4, 6, 2, 3, 8, 9, 10, 11], K = 3
Output : 8
Explanation : K = 3, i.e 0 based index, 4, 6, 2 and 4th is 8.Input : test_list = [4, 6, 2, 3, 8, 9, 10, 11], K = 2
Output : 2
Explanation : K = 2, i.e 0 based index, 4, 6, and 3rd is 2.
Method #1 : Using list comprehension
In this, we extract list of even elements using % operator and use list index access to get Kth even element.
Python3
# Python3 code to demonstrate working of # Kth Even Element# Using list comprehension# initializing listtest_list = [4, 6, 2, 3, 8, 9, 10, 11]# printing original listprint("The original list is : " + str(test_list))# initializing K K = 4# list comprehension to perform iteration and % 2 check res = [ele for ele in test_list if ele % 2 == 0][K]# printing result print("The Kth Even Number : " + str(res)) |
The original list is : [4, 6, 2, 3, 8, 9, 10, 11] The Kth Even Number : 10
Time Complexity: O(n), where n is the elements of list
Auxiliary Space: O(n), where n is the size of list
Method #2 : Using filter() + lambda
In this, task of finding even elements is done using filter() + lambda function.
Python3
# Python3 code to demonstrate working of # Kth Even Element# Using filter() + lambda# initializing listtest_list = [4, 6, 2, 3, 8, 9, 10, 11]# printing original listprint("The original list is : " + str(test_list))# initializing K K = 4# list comprehension to perform iteration and % 2 check res = list(filter(lambda ele : ele % 2 == 0, test_list))[K]# printing result print("The Kth Even Number : " + str(res)) |
The original list is : [4, 6, 2, 3, 8, 9, 10, 11] The Kth Even Number : 10
Time Complexity: O(n), where n is the length of the input list.
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the list “test_list”.
Method #3 : Using for loop +copy()+remove() methods
Python3
# Python3 code to demonstrate working of# Kth Even Element# initializing listtest_list = [4, 6, 2, 3, 8, 9, 10, 11]# printing original listprint("The original list is : " + str(test_list))# initializing KK = 4for i in test_list.copy(): if i % 2 != 0: test_list.remove(i)res = test_list[K]# printing resultprint("The Kth Even Number : " + str(res)) |
The original list is : [4, 6, 2, 3, 8, 9, 10, 11] The Kth Even Number : 10
Time Complexity:O(n)
Auxiliary Space: O(n)
Method #4:Using itertools.filterfalse() method
Python3
# Python3 code to demonstrate working of # Kth Even Elementimport itertools# initializing listtest_list = [4, 6, 2, 3, 8, 9, 10, 11]# printing original listprint("The original list is : " + str(test_list))# initializing K K = 4res = list(itertools.filterfalse(lambda ele : ele % 2 != 0, test_list))[K]# printing result print("The Kth Even Number : " + str(res)) |
The original list is : [4, 6, 2, 3, 8, 9, 10, 11] The Kth Even Number : 10
Time Complexity:O(N)
Auxiliary Space: O(N)
Method #5: Using numpy:
Algorithm:
- Filter out the even numbers from the input list.
- Create a numpy array from the even numbers list.
- Use the numpy partition function to partition the array such that the first K elements are the K smallest elements.
- Return the Kth smallest element from the partitioned array.
Python3
import numpy as np# initializing listtest_list = [4, 6, 2, 3, 8, 9, 10, 11]# printing original listprint("The original list is : " + str(test_list))# initializing KK = 4# filtering even numbers and finding Kth smallesteven_list = np.array([i for i in test_list if i % 2 == 0])res = np.partition(even_list, K-1)[K]# printing resultprint("The Kth Even Number : " + str(res))#This code is contributed by Jyothi pinjala |
Output: The original list is : [4, 6, 2, 3, 8, 9, 10, 11] The Kth Even Number : 10
Time Complexity:
The time complexity of this code is O(n log n), where n is the length of the input list. This is because numpy’s partition function uses the quickselect algorithm to select the Kth smallest element, which has a time complexity of O(n log n) in the worst case.
Space Complexity:
The space complexity of this code is O(n), where n is the length of the input list. This is because we are creating a new numpy array to store the even numbers from the input list.



