A menudo, cuando tratamos con iteradores, también necesitamos llevar un recuento de iteraciones. Python facilita la tarea de los programadores al proporcionar una función incorporada enumerate() para esta tarea. El método enumerate () agrega un contador a un iterable y lo devuelve en forma de objeto de enumeración. Este objeto enumerado puede usarse directamente para bucles o convertirse en una lista de tuplas usando la función list().
algoritmo minimax
Sintaxis: enumerar (iterable, inicio = 0)
Parámetros:
- Iterable: cualquier objeto que soporte la iteración
- Comenzar: el valor del índice desde el cual se iniciará el contador, por defecto es 0
Devolver: Devuelve un iterador con pares de índice y elementos del iterable original.
Ejemplo
Aquí, estamos usando la función enumerate() con una lista y una cadena. Crear objetos enumerados para cada uno y mostrar sus tipos de devolución. También muestra cómo cambiar el índice inicial para la enumeración cuando se aplica a una cadena, lo que da como resultado pares de índice-elemento para la lista y la cadena. .
Python3
l1>=> [>'eat'>,>'sleep'>,>'repeat'>]> s1>=> 'geek'> # creating enumerate objects> obj1>=> enumerate>(l1)> obj2>=> enumerate>(s1)> print> (>'Return type:'>,>type>(obj1))> print> (>list>(>enumerate>(l1)))> # changing start index to 2 from 0> print> (>list>(>enumerate>(s1,>2>)))> |
>
>
Producción:
terminal linux kali
Return type: [(0, 'eat'), (1, 'sleep'), (2, 'repeat')] [(2, 'g'), (3, 'e'), (4, 'e'), (5, 'k')]>
Uso de enumerar objetos en bucles
Enumerate() se usa con una lista llamada l1. Primero imprime tuplas de pares de índices y elementos. Luego cambia el índice inicial mientras los imprime juntos. Finalmente, imprime el índice y el elemento por separado, cada uno en su propia línea.
Python3
l1>=> [>'eat'>,>'sleep'>,>'repeat'>]> # printing the tuples in object directly> for> ele>in> enumerate>(l1):> >print> (ele)> # changing index and printing separately> for> count, ele>in> enumerate>(l1,>100>):> >print> (count, ele)> # getting desired output from tuple> for> count, ele>in> enumerate>(l1):> >print>(count)> >print>(ele)> |
>
>
Producción:
(0, 'eat') (1, 'sleep') (2, 'repeat') 100 eat 101 sleep 102 repeat 0 eat 1 sleep 2 repeat>
Accediendo al siguiente elemento
En Python, la función enumerate() sirve como iterador, heredando todas las funciones y métodos del iterador asociados. Por lo tanto, podemos usar la función next() y el método __next__() con un enumerar objeto.
Para acceder al siguiente elemento en un objeto de enumeración, puede utilizar la función next(). Toma el objeto enumerado como entrada y devuelve el siguiente valor en la iteración.
Python3
formato de fecha.formato java
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
>
>
Producción:
Next Element: (0, 'apple')>
Puedes llamar a next() nuevamente para recuperar elementos posteriores:
Python3
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
intenta capturar java
>
>
Producción:
Next Element: (0, 'apple')>
Cada vez que se llama a next(), el puntero interno del objeto enumerado se mueve al siguiente elemento, devolviendo la tupla correspondiente de índice y valor.