Python admite muchos objetos iterables: listas, tuplas y cadenas son solo algunos. El bucle for de Python es lo suficientemente flexible como para manejar estos objetos con facilidad. En particular, le evita tener que lidiar usted mismo con el índice numérico de cada entrada.
Pero a veces querrá trabajar con un índice, para contar o filtrar elementos en una colección, por ejemplo. Aprenda cómo puede usar la función de enumeración de Python para iterar sobre una secuencia mientras realiza un seguimiento tanto del índice como del elemento.
Iterando sin enumerar ()
Considere la siguiente lista de Python.
mis_frutas = ["manzanas", "peras", "bananas"]
Suponga que desea realizar un seguimiento del recuento de cada elemento de la lista. Tú podrías usar un bucle for con un rango() funcionar así.
contar = 0
por Fruta en rango (len (mis_frutas)):
imprimir (contar, mis_frutas[contar])
contar += 1
Si bien esto funciona, tiene algunas deficiencias:
- Tienes que hacer un seguimiento del conteo fuera del ciclo.
- Tienes que incrementar el conteo en cada iteración.
- Tienes que calcular la longitud del bucle.
- rango (largo()) solo funciona con objetos contables e indexables.
Existe una mejor solución: la función enumerate().
Cómo enumerar () funciona en Python
el pitón enumerar() La función toma una colección de datos y devuelve un objeto de enumeración. El objeto de enumeración contiene un contador como clave para cada elemento que contiene el objeto. los enumerar() lo hace asignando a cada elemento un recuento. Este recuento corresponde al número de iteraciones que ha completado la función para alcanzar ese valor.
Este contador facilita el acceso a los elementos de la colección o incluso la mutación de la colección cuando sea posible.
Con enumerar(), no es necesario que realice un seguimiento de la longitud del ciclo o del recuento de iteraciones. También puede evitar acceder explícitamente al valor usando el operador de índice, como frutos[cuenta]. La función de enumerar maneja automáticamente todas estas características.
La sintaxis de Python enumerate()
A continuación se muestra la sintaxis general de la función enumerate().
enumerar (iterable, start=0)
enumerate() toma dos argumentos:
- iterable: una colección o secuencia de datos sobre la que Python puede iterar. P.ej. una lista o tupla.
- inicio: el índice a partir del cual la función de enumeración debe comenzar a contar.
Cómo se implementa enumerate()
para entender como enumerar() funciona, veamos cómo se implementa realmente.
definitivamenteenumerar(secuencia, comienzo=0):
n = inicio
por elemento en secuencia:
rendir n, elemento
norte += 1
Esta función, que puedes encontrar en la Documentación de enumeración de Python, toma una secuencia y un argumento de inicio que por defecto es 0.
Luego, la función inicializa la variable n en la variable de inicio. Esto realiza un seguimiento del número de iteraciones.
En el bucle for que sigue para cada elemento de la secuencia,
- rendir pausa la ejecución del bucle.
- También devuelve el recuento actual (n) y el valor (elem).
- Cuando el ciclo se reanuda, incrementa n.
El valor de retorno es un objeto de pares clave-valor.
Si tuviera que llamar al enumerar() función y pasarle la lista de frutas, este sería el valor de salida.
mis_frutas = ["manzanas", "peras", "bananas"]
enumerar_objeto = enumerar (mis_frutas)
imprimir (listar (enumerar_objeto))
# salida - [(0, 'manzanas'), (1, 'peras'), (2, 'plátanos')]
Enumerar con un índice inicial diferente
En el ejemplo anterior, no especificamos el índice inicial. El siguiente ejemplo le muestra cómo puede establecer el índice inicial en un número de su elección.
Para comenzar en 10, haga lo siguiente.
enumerar_objeto = enumerar (mis_frutas, 10)
imprimir (listar (enumerar_objeto))
# salida - [(10, 'manzanas'), (11, 'peras'), (12, 'plátanos')]
Python enumerate () Ejemplos
Aquí hay algunos ejemplos que muestran cómo puede usar enumerar() en Python.
Enumerar una cadena de Python
En este ejemplo, usará enumerate para recuperar la letra en el índice 5:
mi_cadena = "hacer uso de"
por cuenta, valor en enumerar (mi_cadena):
si cuenta == 5:
impresión (valor)
# salida - s
Enumerar una tupla de Python
También puedes usar enumerar() para iterar sobre un Tupla de Python. En este ejemplo, el programa imprime un encabezado en la primera iteración, antes de mostrar los elementos.
my_fruits_tuple = ("manzanas", "peras", "plátanos")
por índice, valor en enumerar (my_fruits_tuple):
si (índice == 0):
imprimir("Frutas:")imprimir (valor)
/*
Frutas:
manzanas
peras
plátanos
*/
Enumerar una lista de Python
En el ejemplo a continuación, está utilizando enumerate para disminuir todos los números en la lista por encima de 10 por 2.
mi_lista_de_numeros = [10, 17, 15, 6]
por índice, valor en enumerar (my_number_list):
si (valor > 10):
mi_lista_de_números[índice] -= 2imprimir (my_number_list)
# salida - [10, 15, 13, 6]
Use enumerar para contar sus iterables
Python incluye enumerar() como una función incorporada. Puede usarlo para iterar y contar elementos en una colección iterable, como una lista, una tupla o una cadena. Puede ayudarlo a realizar un seguimiento del índice real de cada elemento, pero también puede especificar su propio índice inicial. Úselo como una alternativa al rango() funcionan si está trabajando con objetos que no son objetos contables e indexables.