Header Ads Widget

Ticker

6/recent/ticker-posts

Tutorial de comprensión de Python

 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 más fácil 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 pueden reescribirse usando una comprensión en Python.


Lista simple de comprensión

Una buena manera 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 comprensión de la lista y usar un fragmento de código de bucle para comenzar.

en bucle

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

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

lista de comprensión

La versión de comprensión de lista elimina el bucle for y simplemente usa la sintaxis [número para número en números] 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 sobre cada artículo

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. Puede 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 que contiene. En cada iteración, agregamos el cuadrado del número. Cuando el ciclo 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 lista de este bucle es muy similar al primer ejemplo que vimos. La única diferencia esta vez es que estamos diciendo que queremos el cuadrado para cada elemento. Así que esto dice, quiero 'número * número' para cada 'número' en 'números' y puede ver qué tan bien se traduce 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 cuadrar el número en cada iteración * solo * si el número es par. Podemos verificar si un número es par utilizando 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 la lista. Podemos usar una declaración if en la comprensión para tomar una acción solo si se cumple una condición.

[4, 16, 36]

Comprensión si más

Durante un ciclo también es común usar una construcción if / else para realizar una acción si 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 comenzando a ver cómo estamos haciendo un uso eficiente de la iteración en Python simplemente usando la sintaxis de comprensión.


Comprensión anidada

Los bucles anidados se utilizan en Python para varios problemas. Puedes anidar usando una comprensión también.

en bucle

Primero, consideramos la creación de 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 la tupla

Ahora traducimos el anidado para 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 utilizando la sintaxis de comprensión.

en bucle

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

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

comprensión dict

Se puede crear el mismo efecto usando una comprensión de diccionario en Python.

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

Dict Comprensión con If

El uso de una declaración condicional también funciona en las comprensiones del diccionario.

en bucle

{'Rojo': 'Pimiento', 'Verde': 'Cebolla'}

comprensión del diccionario con if

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

{'Rojo': 'Pimiento', '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 utilizando 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}

Obtenga más información sobre las comprensiones de Python

  • ¿Puede una declaración If en una comprensión de la lista usar otra  cosa (debatir.codecademy.com)
  • Comprensiones de la lista de Python explicadas con ejemplos  (thecodebits.com)
  • Comprensión de las comprensiones de la lista en Python 3  (digitalocean.com)
  • Lista básica de comprensiones en Python  (pythonforbeginners.com)
  • Comprensión del diccionario de Python  (datacamp.com)
  • 5 ejemplos que usan Dict Comprehension  (cmdlinetips.com)
  • Conceptos básicos de Python Lista Comprensiones del diccionario Comprensiones y expresiones del generador  (netguru.com)
  • Comprensiones de diccionario en Python  (endpoint.com)
  • Comprensión del diccionario de Python  (listendata.com)
  • Comprensiones de Pythontips  (book.pythontips.com)
  • Comprensiones de la lista anidada de Python  (spapas.github.io)
  • Lista de comprensiones anidadas en Python  (lerner.co.il)
  • Lista de comprensiones y expresiones de generador  (djangostars.com)
  • Comprensión de la lista de Python  (learnbyexample.org)
  • Enumerar Dict y establecer comprensiones por ejemplo  (smallsurething.com)

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. Al utilizar las 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 anidados, hasta un solo trazo. 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