Pitón

Use la función Enumerate en Python para crear bucles con contadores

Use la función Enumerate en Python para crear bucles con contadores

Este artículo explicará el uso de la función "enumerar" disponible en la biblioteca de módulos estándar de Python. La función enumerar le permite asignar un "índice" o "recuento" a los elementos en cualquier objeto iterable. A continuación, puede implementar más lógica en ellos, ya que tendrá acceso a ambos valores y un recuento asignado.

Sintaxis y ejemplo básico

Si ha utilizado un bucle "for" en otros lenguajes de programación, especialmente el lenguaje "C" y otros lenguajes con sintaxis de estilo "C", es posible que haya especificado un índice de inicio en el bucle. Como referencia, así es como se ve un bucle "for" en "C" y en otros lenguajes que tienen una sintaxis similar:

para (int i = 0; i < 10; i++)

printf ("% d \ n", i);

La declaración de bucle inicializa una variable que tiene un valor de cero, verifica que sea menor que un umbral y la incrementa en un conteo después de evaluar la lógica dentro del bloque de bucle (si se cumple la condición de parada). De esta manera, puede usar un índice y asignarlo a cualquier objeto referenciado en su bloque de bucle. En comparación, así es como se ve un bucle for con el mismo resultado en Python:

para i en el rango (0, 10):
imprimir (i)

La función "rango" en Python le permite especificar una secuencia de rango numérico que tiene un paso predeterminado de 1. Puede cambiar el valor del paso proporcionando un tercer argumento. El segundo argumento de la función "rango" se utiliza para establecer el umbral para la condición de parada. Ambos ejemplos de código producen el siguiente resultado:

0
1
2
3
4
5
6
7
8
9

Estos bucles funcionan bien si solo desea generar una secuencia numérica y asociarlos con alguna lógica dentro de la declaración del bucle. Sin embargo, es posible que deba usar otro bucle anidado o usar la función "rendimiento" en cualquier tipo iterable para asignarles algún tipo de recuento rastreable. El método "enumerar" facilita la asignación de índices a iterables en una declaración, eliminando así la necesidad de ejecutar múltiples bucles anidados. Eche un vistazo a este ejemplo de código:

números = ["cero", "uno", "dos", "tres", "cuatro", "cinco"]
enumerated_numbers = enumerar (números)
para índice, elemento en números_enumerados:
imprimir (índice, artículo)

La primera declaración define una nueva variable llamada "números" y le asigna un iterable (tipo de lista). La segunda declaración muestra el uso de la función "enumerar" donde le proporciona un iterable como argumento obligatorio. La tercera declaración convierte la variable "enumerated_numbers" en un objeto de tipo lista. De forma predeterminada, la función "enumerar" genera un objeto de tipo "enumerar" y no un tipo iterable, por lo que debe convertirlo. Después de ejecutar el ejemplo de código mencionado anteriormente, debería obtener el siguiente resultado:

[(0, 'cero'), (1, 'uno'), (2, 'dos'), (3, 'tres'), (4, 'cuatro'), (5, 'cinco')]

La función "enumerar" asigna un recuento a cada elemento en un tipo iterable y crea tuplas con valores emparejados. De forma predeterminada, el recuento comienza desde cero.

Ahora que ha asignado un número a cada elemento en un tipo iterable, puede recorrerlo fácilmente sin escribir declaraciones anidadas:

números = ["cero", "uno", "dos", "tres", "cuatro", "cinco"]
enumerated_numbers = enumerar (números)
para índice, elemento en números enumerados:
imprimir (índice, artículo)

El ejemplo de código especificado anteriormente producirá el siguiente resultado:

0 cero
1 uno
2 dos
3 tres
4 cuatro
5 cinco

Puede acortar el código utilizando la función "enumerar" en línea, como se muestra en el ejemplo siguiente:

números = ["cero", "uno", "dos", "tres", "cuatro", "cinco"]
para índice, artículo en enumerar (números):
imprimir (índice, artículo)

Usar enumerar con un índice de inicio diferente

La función "enumerar" toma un argumento opcional donde puede especificar un índice inicial. Por defecto es cero, pero puede cambiarlo usando el argumento "inicio":

números = ["uno", "dos", "tres", "cuatro", "cinco"]
para índice, elemento en enumerar (números, inicio = 1):
imprimir (índice, artículo)

En la segunda declaración, el argumento "inicio = 1" se usa para cambiar el punto de partida. Después de ejecutar el ejemplo de código especificado anteriormente, debería obtener el siguiente resultado:

1 uno
2 dos
3 tres
4 cuatro
5 cinco

Asignar índice con pasos

En la primera sección de este artículo, se muestra la sintaxis del bucle "for" en lenguaje "C", donde puede definir los pasos entre cada recuento o índice subsiguiente. La función "enumerar" en Python no tiene ningún argumento de este tipo disponible, por lo que no puede especificar un paso entre recuentos. De hecho, puede escribir su propia lógica para implementar pasos dentro del bloque de bucle "for" enumerado. Sin embargo, hay una forma de implementar pasos personalizados escribiendo código mínimo. El siguiente ejemplo muestra la implementación de pasos usando las funciones "zip" y "range":

números = ["cero", "dos", "cuatro", "seis"]
para índice, elemento en zip (rango (0, 7, 2), números):
imprimir (índice, artículo)

La función "zip" le permite crear pares seleccionando elementos que tienen el mismo índice de dos o más iterables. Entonces, la función "zip" aquí toma un elemento del iterable devuelto por la función "rango (0, 7, 2)" y otro elemento de la lista "números" y luego los empareja en una tupla. El resultado final es una implementación idéntica a la función "enumerar" pero con pasos personalizados especificados como un tercer argumento en la función "rango (0, 7, 2)" (2 en este caso). Después de ejecutar el ejemplo de código especificado anteriormente, debería obtener el siguiente resultado:

0 cero
2 dos
4 cuatro
6 seis

Conclusión

La función "enumerar" en Python le permite escribir código conciso asignando una secuencia numérica a los elementos en un objeto iterable. Esto es realmente útil si desea realizar un seguimiento del índice de elementos dentro de un tipo iterable. Si desea "enumerar" tipos iterables con pasos personalizados, utilice la función "zip" explicada en el último ejemplo.

Revisión del mouse inalámbrico Microsoft Sculpt Touch
Recientemente leí sobre el Microsoft Sculpt Touch mouse inalámbrico y decidí comprarlo. Después de usarlo por un tiempo, decidí compartir mi experienc...
Trackpad en pantalla y puntero del mouse AppyMouse para tabletas Windows
Los usuarios de tabletas a menudo pierden el puntero del mouse, especialmente cuando son habituales para usar las computadoras portátiles. Los teléfon...
El botón central del mouse no funciona en Windows 10
La botón central del ratón le ayuda a desplazarse por páginas web largas y pantallas con una gran cantidad de datos. Si eso se detiene, bueno, termina...