Header Ads Widget

Ticker

6/recent/ticker-posts

Tutorial de comprensión de Python

Este tutorial de Python se centrará en las comprensiones y cómo usarlas. El concepto de comprensión en Python es que es una forma más fácil y legible de crear una lista u otra secuencia. Crear una lista es la aplicación más común de comprensión, pero también se puede usar con un diccionario, tupla, conjunto o incluso una cadena. También es posible agregar lógica a una comprensión con una declaración if o una declaración if else . Inspeccionaremos python común en busca de estructuras de bucle y cómo se pueden reescribir usando una comprensión en Python.


Comprensión de lista simple

Una buena forma de aprender las comprensiones en Python es ver el código que usa un bucle for versus el código que usa una comprensión para obtener el resultado deseado. Podemos comenzar con una lista de comprensión y usar un fragmento de código de bucle for para comenzar.

en bucle

Aquí tenemos una lista simple de números de Python almacenados en la numbersvariable. Luego usamos un bucle for para recorrer cada elemento y agregarlo a la my_list[]variable en cada iteración. Este código se lee como, quiero un 'número' para cada elemento en 'números' .

[1, 2, 3, 4, 5, 6, 7]

lista de comprensión

La versión de comprensión de la lista elimina el ciclo for y simplemente usa la sintaxis [number for number in numbers] para lograr el mismo resultado. Se lee como, quiero un número para cada número en números. La impresión de los my_listespectáculos de variables que hemos copiado con éxito cada elemento de que el uso de la comprensión en Python. ¡Frio!numbers my_list

[1, 2, 3, 4, 5, 6, 7]

Tomar una acción en cada elemento

Cuando se usa un bucle for, es común aplicar algún tipo de acción a cada elemento para cada iteración. En este ejemplo, vamos a calcular el cuadrado de cada número de la lista. Puedes leerlo como, quiero 'número * número' para cada 'número' en 'números' . Veamos cómo se ve esto en un bucle for.

en bucle

Para hacer esto en un ciclo for, creamos una lista vacía y luego recorremos todos los números contenidos en ella. En cada iteración, agregamos el cuadrado del número. Cuando el bucle for deja de ejecutarse, simplemente imprimimos la lista para ver el resultado.

[1, 4, 9, 16, 25, 36, 49]

lista de comprensión

La versión de comprensión de la lista de este ciclo es muy similar al primer ejemplo que vimos. La única diferencia esta vez es que estamos diciendo que queremos el cuadrado para cada elemento. Entonces, esto se lee como, quiero 'número * número' para cada 'número' en 'números' y pueden ver qué tan bien se traduce eso en la comprensión de [número * número por número en números] . Imprimir la lista resultante nos da exactamente lo que queríamos.

[1, 4, 9, 16, 25, 36, 49]

versión lambda

Esto también se puede lograr con una función lambda, pero no es tan fácil de leer o comprender. Creo que estarás de acuerdo.

[1, 4, 9, 16, 25, 36, 49]

Comprensión si

Cuando usamos el ciclo for, podemos usar una condición if dentro del ciclo para determinar si queremos tomar una acción o no.

en bucle

Para este ejemplo, ahora vamos a elevar al cuadrado el número en cada iteración * solo * si el número es par. Podemos verificar si un número es par usando el operador de módulo con la sintaxis de if number% 2 == 0 .

[4, 16, 36]

lista de comprensión

Se puede lograr el mismo resultado en la versión de comprensión de listas. Podemos usar una declaración if en la comprensión para realizar una acción solo si se cumple una condición.

[4, 16, 36]

Comprensión si otra cosa

Durante un ciclo, también es común usar una construcción if / else para realizar una acción si hay una condición y una acción diferente para una condición diferente.

en bucle

En este ciclo for, vamos a usar el if / else para agregar el número si es par, y agregar el cuadrado del número si es impar.

[1, 2, 9, 4, 25, 6, 49]

lista de comprensión

En la comprensión de la lista, un if / else también se puede usar como una línea.

[1, 2, 9, 4, 25, 6, 49]

Entonces, estamos empezando a ver cómo estamos haciendo un uso eficiente de la iteración en Python simplemente usando la sintaxis de comprensiones.


Comprensión anidada

Los bucles for anidados se utilizan en Python para varios problemas. También puede anidar utilizando una comprensión.

en bucle

Primero, buscamos crear pares de letras y números. Por ejemplo, queremos algo como a1, a2, a3, b1, b2, b3, etc… Para hacer esto con un bucle for, se ve así.

[('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ( 'c', 1), ('c', 2), ('c', 3)]

comprensión de tuplas

Ahora traducimos el anidado para a una comprensión en una línea con el mismo resultado.

[('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ( 'c', 1), ('c', 2), ('c', 3)]

Diccionario de comprensiones

Además de crear listas, podemos crear diccionarios de Python usando la sintaxis de comprensiones.

en bucle

Aprendimos sobre la función zip () en nuestro tutorial de trucos y consejos de PythonEn este bucle for, usaremos esa función zip () para asociar valores de una lista con otra lista. Esto da como resultado un diccionario de pares clave / valor poblado utilizando el valor de índice de cada lista.

{'Red': 'Pimiento', 'Verde': 'Cebolla', 'Naranja': 'Calabaza'}

comprensión de dic

El mismo efecto se puede crear usando una comprensión de diccionario en Python.

{'Red': 'Pimiento', 'Verde': 'Cebolla', 'Naranja': 'Calabaza'}

Dict Comprehension con If

El uso de una declaración condicional también funciona en la comprensión del diccionario.

en bucle

{'Red': 'Pimienta', 'Verde': 'Cebolla'}

comprensión del diccionario con if

Aquí está la versión de comprensión del diccionario que usa una declaración if.

{'Red': 'Pimienta', 'Verde': 'Cebolla'}

Conjunto de comprensión

Un conjunto en Python es una secuencia sin valores duplicados. Aquí tomaremos una lista de números con varios valores duplicados y crearemos un conjunto usando un bucle for y una comprensión de conjunto.

en bucle

{1, 2, 3, 4, 5}

comprensión del conjunto

{1, 2, 3, 4, 5}


Resumen del tutorial de comprensión de Python

Las comprensiones son otro ejemplo de la elegante sintaxis que puede usar para crear código efectivo con Python. Mediante el uso de comprensiones, muchas veces puede reducir el código que anteriormente requería dos, tres, cuatro o más líneas de código con bucles for y bucles for anidados, hasta una sola línea. Una vez que esté acostumbrado a su sintaxis, las comprensiones también son muy legibles y generalmente son una mejor opción que usar las funciones .map () y .filter ().



Publicar un comentario

0 Comentarios