Python | Índices del valor del elemento Kth

A veces, mientras trabajamos con registros, podemos tener un problema en el que necesitamos encontrar todos los índices de los elementos para un valor particular en una posición K-ésima particular de la tupla. Este parece ser un problema peculiar, pero al trabajar con muchas claves en los registros, nos encontramos con este problema. Analicemos ciertas formas en que se puede resolver este problema.

Método #1: Usar bucle

Este es el método de fuerza bruta por el cual se puede resolver este problema. En esto, mantenemos un contador para los índices y lo agregamos a la lista si encontramos el registro específico en la posición K en la tupla.

# Python3 code to demonstrate working of
# Indices of Kth element value
# Using loop
  
# initialize list 
test_list = [(3, 1, 5), (1, 3, 6), (2, 5, 7),
                        (5, 2, 8), (6, 3, 0)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initialize ele 
ele = 3
  
# initialize K 
K = 1 
  
# Indices of Kth element value
# Using 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
  
# printing result
print("The indices of element at Kth position : " + str(res))
Producción :

La lista original es: [(3, 1, 5), (1, 3, 6), (2, 5, 7), (5, 2, 8), (6, 3, 0)]
Los índices del elemento en la K-ésima posición: [1, 4]

Método #2: Usar enumerate()+ comprensión de lista

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, enumeramos los índices usando enumerate(), el resto se realiza como en el método anterior pero de forma compacta.

# Python3 code to demonstrate working of
# Indices of Kth element value
# Using enumerate() + list comprehension
  
# initialize list 
test_list = [(3, 1, 5), (1, 3, 6), (2, 5, 7), 
                        (5, 2, 8), (6, 3, 0)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initialize ele 
ele = 3
  
# initialize K 
K = 1 
  
# Indices of Kth element value
# Using enumerate() + list comprehension
res = [a for a, b in enumerate(test_list) if b[K] == ele]
  
# printing result
print("The indices of element at Kth position : " + str(res))
Producción :

La lista original es: [(3, 1, 5), (1, 3, 6), (2, 5, 7), (5, 2, 8), (6, 3, 0)]
Los índices del elemento en la K-ésima posición: [1, 4]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *