Python | K-th element value indices



Method # 1: Using a Loop

This is a brute force method by which this problem can be solved. In this case, we keep a counter for the indices and add to the list if we find a specific entry at the Kth position in the tuple.

# Python3 code to demonstrate how it works
# Indexes of the value of the Kth element
# Using a loop

 
# initialize the list

test_list = [( 3 , 1 , 5 ), ( 1 , 3 , 6 ), ( 2 , 5 , 7 ),

( 5 , 2 , 8 ), ( 6 , 3 , 0 )]

 
# print original list

print ( "The original list is:" + str (test_list))

 
# initialize ele

ele = 3

 
# initialize K

K = 1  

 
# Indexes of the value of the Kth element
# Using a loop
# using y for K = 1

res = []

count = 0

for x, y, z in test_list:

if y = = ele:

res.append (count)

count = count + 1

 
# print result

print ( "The indices of element at Kth position: " + str (res))

Output:

The original list is: [(3, 1, 5), (1, 3, 6), (2, 5, 7), (5, 2, 8), (6, 3, 0)]
The indices of element at Kth position: [1, 4]

Method # 2: Using en umerate () + list comprehension

A combination of the above functions can be used to solve this problem. In this we enumerate the indexes using enumerate () , the rest are performed as in the previous method, but compactly.

# Python3 code for demonstrations
# Indexes of the value of the Kth element
# Using enumerate () + list comprehension

 
# initialize the list

test_list = [( 3 , 1 , 5 ), ( 1 , 3 , 6 ), ( 2 , 5 , 7 ), 

( 5 , 2 , 8 ), ( 6 , 3 , 0 )]

  
# print original list

print ( "The original list is:" + str (test_list))

 
# initialize ele

ele = 3

 
# initialize K

K = 1  

 
# Kth element value indices
# Using enumerate () + list comprehension

res = [a for a, b in enumerate (test_list) if b [K] = = ele]

  
# print result

print ( "The indices of element at Kth position:" + str (res))

Output:

The original list is: [(3, 1, 5), (1, 3, 6), (2, 5, 7), (5, 2, 8), (6, 3, 0)]
The indices of element at Kth position: [1, 4]