Hablemos de algo que es bastante exclusivo de Python y hace que las cosas sean realmente agradables como programadores de
Python, y se llama comprensión, es uno de nuestros términos clave.
Comprensiones.
¿Qué son?
Bueno, en realidad se llaman listas por comprensión o comprensiones de conjuntos o comprensiones de diccionario.
Y estos son algunos de los tipos de datos que tenemos en Python.
Y podemos usar comprensiones con estos tres tipos de datos, por cierto, mientras estoy grabando, hay algunos
pájaros cantando de fondo.
Pensé que sería bueno simplemente grabar el canto de los pájaros de fondo.
Creo que será pacífico para ti si te enfadas.
Lo siento, pero bueno, los pájaros también tienen que divertirse.
Bien, entonces, ¿cuáles son estas comprensiones?
Bueno, son una forma rápida de crear listas, conjuntos o diccionarios en Python en lugar de hacer un bucle o
agregar un montón de elementos a las listas.
Déjame mostrarte, en lugar de hacer algo como mi lista es igual a una lista vacía, y desde
aquí haré algo como cuatro caracteres en Hola.
Mi punto de lista se adjunta.
Personaje.
Solo para poder crear esta lista finalmente, digamos mi lista e imprimiremos esto.
Si hago clic, corre.
Creé una lista que contiene los personajes de Hello.
Está bien, pero.
¿Existe una forma más rápida y limpia de hacer esto y sí, la hay con menos comprensión en Python?
Una vez más, es bastante único.
No lo ves en muchos lenguajes de programación, pero a las personas que usan Python realmente les encanta esta función, y a
mí también.
Entonces, ¿cómo podemos hacer esto usando una lista de comprensión?
Bueno, el formato que vamos a seguir es así.
Vamos a decir Perram.
Para.
Perram en iterable.
Entonces, cuando digo Perram, me refiero a parámetro, o en nuestro caso, podría ser una variable, por lo que podemos nombrarlo
como queramos.
Así que nombremos este personaje como lo hicimos aquí y luego el personaje como lo hicimos aquí.
Y luego queremos un iterable en nuestro caso le dirá hola.
De modo que si elimino esto y hago clic en ejecutar.
Obtengo lo mismo así, así que en la Creación en línea tres, creo una lista que contiene el
carácter en Hola, hago un ciclo for aquí y creo la lista.
Entonces, la forma en que me gusta pensar sobre esto es, oye, crea
una variable y luego haremos un ciclo for que diga, oye, para cada variable en el iterable agregada a la lista.
Bien, ampliemos esto, digamos que quería hacer otra cosa, llamémosla mi lista también, y quiero
crear, digamos, una lista rápida con números que van de cero a cien o de cero a noventa y
nueve.
¿Cómo haría esto de nuevo?
Usando una lista de comprensión, diré el número cuatro y luego ¿cuál es el iterable que voy a usar?
Bueno, voy a usar un rango y decir de cero a 100 para que si hago clic en ejecutar aquí.
Mire eso, tengo una lista larga y bonita, bastante poblada con todos estos números.
¿Cuan genial es eso?
está bien.
Pero aquí está mi desafío para ti.
¿Y si quisiera esto, pero todos los números deberían multiplicarse por dos?
Entonces quiero una lista donde esto sea igual a cero.
Estos son dos.
Son cuatro.
Son seis.
Son ocho.
Son diez.
Y así sucesivamente.
¿Cómo puedo hacerlo?
Bueno, en realidad podemos ampliar esto para que mi lista tres esta vez use el mismo bucle for que hemos
visto antes.
Así, pero en lugar de solo la variable, ahora es una expresión de cómo queremos actuar sobre cada carácter,
tal como vimos en las expresiones lambda.
Así que ahora puedo decirle a los tiempos entumecidos.
Para.
Estos artículos.
Así que ahora si hago mi lista tres.
Oye, mira eso.
Eso es bastante bueno, ¿no?
Bien, hagámoslo aún más desafiante, digamos Millas tres, y hagamos esto un poco más grande
aquí.
Mi lista para la quiero cambiar para que en mi lista, todavía guarde aquí lo que tengo los números, pero solo quiero
mantener los números pares.
En este caso, todos son pares porque se multiplican por dos, pero si, por ejemplo, hacemos a la potencia
de dos y comentemos esto por un segundo y damos clic en ejecutar.
Vemos que algunos números no lo son.
Aun así, quiero mantener estos números, pero solo los pares, ¿cómo lo haría?
Bueno, en este caso, tenemos una nueva forma de crear esta expresión, haremos exactamente lo mismo que
hicimos aquí.
Así que solo voy a copiar eso.
Pero al final, recuerde, ahora tenemos una expresión aquí, algo que vamos a hacer para afectar cualquiera que
sea el elemento en el iterable.
Vamos a recorrer las cosas y, finalmente, después de esto, podemos decir si podemos hacer una condición if.
Entonces, digamos en nuestro caso, diré si num.
El módulo dos es igual a cero, solo que luego se agrega a la lista.
Entonces, si hacemos clic, ejecutamos.
Bueno, y asegúrate de que sea menos para hacer clic en ejecutar.
Mire eso, todos estos son números pares, así que veamos este formato.
¿Recordar?
Estos se denominan listas por comprensión, es una forma de que creamos listas rápidamente con Python en lugar de hacer
un bucle y usar agregar o cosas que hemos visto antes.
Así que es una forma abreviada de hacer cosas únicas como esta.
La forma en que podemos hacer esto es tener una expresión aquí de lo que queremos hacer con cada elemento sobre
el que estamos iterando, hacemos un bucle.
Usando un bucle for que no se puede golpear, le damos una variable sobre la que vamos a
actuar, y luego, si queremos, también tenemos una opción para agregar un condicional y decir, oye, solo se incluye en la lista en función de esta
condición , basado en un verdadero o falso.
Muy, muy bueno ahora, aunque las listas por comprensión son realmente agradables porque son simples
una línea, puede volverse bastante confuso.
Al mirar este código, debe estar realmente familiarizado con las listas por comprensión para comprender realmente lo que
está sucediendo.
Entonces, aunque esto hace que el código sea más corto, tal vez incluso más limpio, le quita un poco de legibilidad.
Entonces, podría ser mejor crear una función descriptiva como generar una lista de números pares o algo por
el estilo.
Entonces es más descriptivo.
Y otro desarrollador podría tener una mejor idea de lo que está sucediendo.
Así que siempre es una compensación.
Tomemos un descanso y hablemos sobre la comprensión de conjuntos y diccionarios en el siguiente video de.