Obtener índice en la lista de objetos por atributo en Python

En este artículo, veremos cómo encontrar el índice de un elemento en una lista usando un atributo en Python. Usaremos la función enumerar para hacer esto. 

La función enumerate() produce un contador que cuenta cuántas veces se ha iterado un ciclo. No necesitamos importar bibliotecas adicionales para utilizar la función enumerate() porque está integrada en Python. Si usamos enumerate function(), entonces no tenemos que preocuparnos por hacer una declaración range() y luego recuperar la longitud de una array. La función enumerar mantiene dos valores: el índice del elemento y su valor. 

Sintaxis: enumerate(iterable, start=0)

Parámetros:

  • iterable: cualquier objeto que soporte la iteración
  • inicio: el valor del índice a partir del cual se inicia el contador
  • para ser iniciado, por defecto es 0

Python3

# This code gets the index in the
# list of objects by attribute.
  
class X:
    def __init__(self,val):
        self.val = val
        
def getIndex(li,target):
    for index, x in enumerate(li):
        if x.val == target:
            return index
    return -1
  
# Driver code
li = [1,2,3,4,5,6]
  
# Converting all the items in
# list to object of class X
a = list()
for i in li:
    a.append(X(i))
      
print(getIndex(a,3))

Producción:

2

En este código, primero estamos construyendo una clase X, por ejemplo, con el atributo val. Ahora escribiremos una función para nuestra tarea (aquí la llamamos getIndex()) que devolverá el índice del elemento que estamos buscando usando el atributo, o -1 si el elemento no existe en nuestra lista . Utilizaremos el método de enumeración en getIndex() y, como puede ver, hemos usado dos variables en nuestro ciclo for (índice y x) porque la función de enumeración realiza un seguimiento del índice y el valor del elemento, y necesitamos almacenar ambos valores para completar nuestra tarea. Tenemos una condición if dentro de nuestro ciclo for que dice si el atributo val del elemento x de la lista tiene el mismo valor que el valor objetivo, luego devuelve su valor de índice. La función enumerar proporciona estos valores de índice. Ahora veamos cómo funciona. hemos definido una lista, por ejemplo, dentro de la variable li, y vamos a convertir esta lista de valores enteros en una lista de objetos. Ahora hemos pasado esta lista a la función getIndex, junto con el valor objetivo para el que busco un índice.

Publicación traducida automáticamente

Artículo escrito por sp3768546 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 *