In Desarrollo Última actualización:
Comparte en:
Cloudways ofrece alojamiento en la nube administrado para empresas de cualquier tamaño para alojar un sitio web o aplicaciones web complejas.

En esta guía, aprenderá cómo encontrar el índice de un elemento en una lista de Python, usando iteraciones simples y un método de lista integrado. índice().

Cuando trabaje con listas de Python, es posible que deba averiguar el índice en el que se encuentra un elemento en particular. Puedes hacer esto por:

  • Recorriendo la lista y verificando si el elemento en el índice actual es igual al valor particular
  • Usando el método de lista incorporado index()

Aprenderá las dos cosas anteriores en este tutorial. Empecemos.👩🏽‍💻

Listas de Python, revisadas

En Python, una lista es una colección de elementos, del mismo tipo de datos o de tipos diferentes. Están mudable; puede modificarlos en su lugar sin tener que crear una nueva lista.

Considere este ejemplo fruits: una lista de 5 frutas diferentes.

fruits = ["apple","mango","strawberry","pomegranate","melon"]

Puede obtener la longitud de cualquier objeto de Python utilizando el incorporado len() función. Entonces puedes llamar al len() función con el objeto de lista (fruits) como argumento para obtener su longitud, como se muestra a continuación.

len(fruits)
# Output: 5

 Usaremos el fruits list como ejemplo de ejecución en este tutorial.

Indexación en listas de Python

pitón sigue indexación cero. Entonces, en cualquier iterable de Python, el primer elemento está en el índice 0, el segundo elemento está en el índice 1, y así sucesivamente. Si la longitud del iterable es k, entonces el último elemento está en el índice k - 1.

En Python, puede usar la función range() para obtener índices a medida que recorre iterables.

Nota: cuando recorres range(k), obtienes los índices 0,1,2,…,(k-1). Así que al establecer k = len(list), puede obtener la lista de todos los índices válidos.

La siguiente celda de código explica esto.

for i in range(len(fruits)):
  print(f"i:{i}, fruit[{i}] is {fruits[i]}")

# Output
i:0, fruit[0] is apple
i:1, fruit[1] is mango
i:2, fruit[2] is strawberry
i:3, fruit[3] is pomegranate
i:4, fruit[4] is melon

Ahora que hemos cubierto los conceptos básicos de Listas de Python aprendamos cómo encontrar el índice de un elemento en una lista.

Buscar el índice de un elemento de lista por iteración usando bucles for

Consideremos la lista fruits de la sección anterior. Aprenderemos cómo encontrar el índice de un elemento específico en esta lista por iteración usando for lazo.

Usando la función for Loop y range()

vamos a arreglar target: el valor que estamos buscando en la lista.

Puedes usar for bucle y range() función para obtener la lista de índices de 0 a len(fruits) - 1.

  • Recorra la lista de frutas accediendo a cada índice.
  • Compruebe si el elemento en el índice actual i es igual al objetivo.
  • If True, imprime que el target se ha encontrado en el índice i.
fruits = ["apple","mango","strawberry","pomegranate","melon"]

target = "mango"

for i in range(len(fruits)):
  if fruits[i] == target:
   print(f"{target} found at index {i}")

# Output
mango found at index 1

En este ejemplo, la cadena de destino 'mango' aparece exactamente una vez (en el índice 1) en la lista fruits.

Sin embargo, a veces el valor objetivo aparece más de una vez o no aparece en absoluto. Para manejar estos casos, modifiquemos el bucle anterior y envolvamos el contenido dentro de una función llamada find_in_list.

Comprender la definición de la función

La función find_in_list tiene dos parámetros:

  • target: el valor que está buscando, y
  • py_list: la lista de Python en la que está buscando.
def find_in_list(target,py_list):
  target_indices = []
  for i in range(len(fruits)):
    if fruits[i] == target:
      target_indices.append(i)  
  if target_indices == []:
    print("Sorry, target not found!")
  else:
    print(f"{target} is found at indices {target_indices}")

En el cuerpo de la función, inicializamos una lista vacía. target_indices. Recorremos la lista y accedemos a los elementos de la lista. Si el objetivo se ha encontrado en un índice particular, agregamos ese índice al target_indices lista usando el append() método.

Nota: En Python, list.append(item) añade item hasta el final de list.

  • Si nunca se encuentra el objetivo, entonces target_indices es una lista vacía; se notifica al usuario que el objetivo no está presente en la lista.
  • Si el objetivo se encuentra en más de un índice, entonces target_indices contiene todos esos índices.

A continuación, redefinamos el fruits lista como se muestra.

Esta vez estamos buscando el target cadena 'mango', que ocurre dos veces, en los índices 1 y 4.

fruits = ["apple","mango","strawberry","pomegranate","mango","melon"]
target = "mango"
find_in_list(target,fruits)

# Output
mango is found at indices [1, 4]

Al llamar a la función find_in_list target y fruits como argumentos, vemos que se devuelven ambos índices.

target = "turnip"
find_in_list(target,fruits)

# Output
Sorry, target not found!

Si intentas buscar 'turnip' que no está presente en el fruits lista, recibe un mensaje de que no se ha encontrado el objetivo.

Usando la función for Loop y enumerate()

En Python, puede usar el enumerate() función para acceder tanto al índice como a los elementos simultáneamente, sin tener que usar el range() función.

La siguiente celda de código muestra cómo puede usar el enumerate() para obtener tanto los índices como los elementos.

fruits = ["apple","mango","strawberry","pomegranate","mango","melon"]
for index,fruit in enumerate(fruits):
  print(f"Index {index}: {fruit}")

# Output
Index 0: apple
Index 1: mango
Index 2: strawberry
Index 3: pomegranate
Index 4: mango
Index 5: melon

Ahora, reescribamos la función de Python para encontrar el índice de elementos en la lista usando enumerate() función.

def find_in_list(target,py_list):
  target_indices = []
  for index, fruit in enumerate(fruits):
   if fruit == target:
    target_indices.append(index) 
  if target_indices == []:
    print("Sorry, target not found!")
  else:
    print(f"{target} is found at indices {target_indices}")

Al igual que en la sección anterior, ahora puede llamar al find_in_list función con argumentos válidos.

Puede traducir la definición de función anterior a una comprensión de lista equivalente y lo haremos en la siguiente sección.

Buscar el índice de un elemento de la lista por iteración mediante la comprensión de la lista

Lista de comprensiones en Python le permite crear listas a partir de listas existentes en función de alguna condición. Aquí está la construcción general:

new_list = [<output> for <items in existing iterables> if <condition is true>] 

La siguiente figura describe cómo identificar los elementos de la comprensión de listas; usando esto, puedes convertir la función find_in_list a una lista de comprensión.

Usando lo anterior, la expresión para la comprensión de listas para crear índices objetivo es la siguiente.

target_indices = [index for index,fruit in enumerate(fruits) if fruit==target]

Como ejercicio, puede intentar ejecutar el fragmento de código anterior para ver algunos otros ejemplos.

Encuentra el índice de un elemento de la lista usando el método index()

Para encontrar el índice de un elemento en una lista de Python, también puede usar el .index() método. Aquí está la sintaxis general:

list.index(value,start,end)

Analizando el método anterior:

  • value es el valor objetivo que está buscando.
  • start y end están opcional argumentos posicionales; puede usarlos para buscar el índice de un elemento en el segmento de la lista que comienza en start y extendiéndose hasta end - 1.

Nota: Los .índice() devuelve el método , solamente el índice de la primera ocurrencia of value in list. Incluso cuando encuentra el índice de un elemento en un segmento de lista [inicio: fin-1], este método devuelve solo el índice correspondiente a la primera aparición del elemento.

Revisemos nuestro ejemplo para entender cómo el .index() el método funciona.

fruits = ["apple","mango","strawberry","pomegranate","mango","melon"]
target = "mango"

fruits.index(target)
1

A pesar de que hay dos ocurrencias de 'mango' existentes fruits lista, se puede ver que sólo el índice de la la primera se ha devuelto la ocurrencia.

Para obtener el índice de la segunda aparición de mango, podemos buscar en el sector de la lista comenzando en el índice 2 y extendiéndose hasta el índice 5, como se muestra a continuación.

fruits.index(target,2,5)
4

Cómo manejar errores de valor en Python

Ahora veamos qué sucede si intenta encontrar el índice de un elemento que no está presente en la lista, digamos, 'carrot'.

target = "carrot"

fruits.index(target)

# Output
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-17-81bd454e44f7> in <module>()
      1 target = "carrot"
      2 
----> 3 fruits.index(target)

ValueError: 'carrot' is not in list

Como se ve en la celda de código anterior, esto arroja un ValorError. En Python, puede manejar esto como una excepción usando el try y except Bloques

La sintaxis general a utilizar try-except es como sigue.

try:
  # to do this
except <ErrorType>:
  # do this to handle <ErrorType> as exception

Usando los bloques try-except anteriores, podemos manejar ValorError como una excepción.

target = "carrot"
try:
  fruits.index(target)
except ValueError:
  print(f"Sorry, could not find {target} in list")

# Output
Sorry, could not find carrot in list

El código anterior hace lo siguiente:

  • Si el destino está presente en la lista, devuelve el índice del destino.
  • Si el objetivo no está presente, se encarga ValorError como una excepción e imprime el mensaje de error.

Recapitulación

Aquí hay un resumen de los diferentes métodos que ha aprendido para encontrar el índice de un elemento en una lista de Python.

  • Puedes usar Python para bucle y distancia() para obtener los elementos y sus respectivos índices. Compruebe si los elementos en los índices coinciden con el objetivo.
  • También puedes utilizar la enumerar() función para acceder simultáneamente al ítem y al índice. 
  • Puede usar los dos métodos anteriores dentro de una expresión de comprensión de lista.
  • Para encontrar el índice de un elemento en una lista, también puede usar el .índice() método.
  • list.index(valor) devuelve el índice de la primera aparición de propuesta de in lista. Si el valor no está presente, genera un ValorError.
  • Puede buscar a través de una porción determinada de la lista usando list.index(valor, inicio, fin) para buscar la aparición de un valor en el segmento de la lista [inicio:fin-1]

A continuación, aprenda a ordenar un diccionario de Python por clave o por valor. Contento Programación en pitón!

Comparte en:
  • Bala Priya C.
    Autor
    Bala Priya es un desarrollador y escritor técnico de India con más de tres años de experiencia en el espacio de redacción de contenido técnico. Comparte su aprendizaje con la comunidad de desarrolladores mediante la creación de tutoriales técnicos, guías prácticas y más...

Gracias a nuestros patrocinadores

Más lecturas interesantes sobre el desarrollo

Impulse su negocio

Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • La herramienta de conversión de texto a voz que utiliza IA para generar voces realistas parecidas a las humanas.

    Prueba la IA de Murf
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.

    Prueba Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno para ayudarlo a administrar proyectos, tareas, trabajo, ventas, CRM, operaciones, workflows, y más.

    Intente Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.

    Intente Intruder