Correcto, así que en el último video, hablamos sobre los dos desafíos, pero realmente no expliqué en
detalle qué eran.
Entonces, el primer archivo challenge1. py, recuerda que
puedes obtenerlo de la sección de recursos del último video.
El desafío para el primero es volver a escribir el siguiente código para usar una lista de comprensión en lugar de
un ciclo for, y puede ver el ciclo for en las líneas 10 y 11.
su solución debajo del bucle para que la lista resultante se imprima debajo de la salida, por lo que
es más fácil comprobar que está produciendo exactamente la misma lista y evita ingresar el texto de entrada dos veces.
Ahora necesita agregar
Entonces, básicamente, vamos a hacer eso.
Así que sigamos adelante y miremos eso primero.
Y puede ver que hemos obtenido un comentario aquí para
decir su solución aquí, y ahí es exactamente donde vamos a comenzar a escribirla.
Y, por cierto, mencioné aquí que también podría ser útil almacenar las palabras originales
en una lista.
El bucle for se vería así.
Aquí puede ver el ejemplo de eso, y
observe los paréntesis adicionales para que podamos obtener tuplas en la lista. Puedes ver los paréntesis adicionales allí en
la línea 23. Pero llegaremos a eso en breve.
Vamos a hacer esto primero primero.
Entonces, para la primera parte, nuestra comprensión iterará sobre la lista que se produce dividiendo el
texto de entrada.
Ahora queremos la longitud de cada palabra,
por lo que las comprensiones van a usar la función len para eso. código y podemos ver cómo lo hacemos.
Así que digitemos el
Así que voy a comenzar en la línea 16, la respuesta es igual a, corchetes izquierdos y derechos
porque es una comprensión, una lista de comprensión, len paréntesis x para x en paréntesis de división de puntos de texto.
Luego, en la línea siguiente, podemos imprimir las respuestas entre paréntesis, o responder, debería decir.
Entonces, básicamente, queremos que la longitud de cada palabra y las comprensiones que utilizan la función len x, como se puede ver en la
línea 16, sean las mismas que para for loop. Nada único allí.
Entonces, ejecutemos el programa para asegurarnos de que funciona.
Y, obviamente, también veremos la ejecución de la versión for loop.
Ahora, para el texto, vamos a ir. ¿Qué han hecho los
romanos por nosotros?
Entonces, pueden ver que tenemos el mismo resultado para el bucle for y también para la comprensión.
Entonces ese es un buen comienzo.
Ahora para esta segunda parte del desafío, mencioné que podría ser útil almacenar las palabras
originales en la lista también.
Ahora el bucle for se vería como el ejemplo que puede ver allí con los paréntesis adicionales, de modo que
obtengamos tuplas en la lista.
Y obviamente vas a escribir tu comprensión correspondiente aquí abajo, de pie en la línea 29.
Entonces, básicamente, queremos una tupla que contenga la palabra original y su longitud.
Sigamos adelante y escriba una respuesta a eso.
Y comenzaremos este en la línea 30, la respuesta es igual a corchetes izquierdos y derechos, paréntesis x espacio de coma len
izquierdo y paréntesis derecho, x luego tenemos dos paréntesis de cierre como se puede decir allí, luego 4 x en texto
punto paréntesis de división. Luego, imprimiremos la respuesta
en la siguiente línea, imprimiremos la respuesta entre paréntesis. Lo mejor es que estamos produciendo una tupla que contiene la palabra y su longitud.
ingresé aquí, ejecutar el código, y una vez más puedes ver que nuestra comprensión produce la misma lista que el bucle original de.
Y lo que haré es copiar exactamente la misma salida que La conversión de un bucle for a una comprensión
es bastante sencillo, y son una adición muy útil a su kit de herramientas
de programación.
Ahora, antes de pasar a la solución del segundo desafío, hay un par de cosas
que decir sobre este.
Ahora que el primero es, probablemente no queremos duplicados. En otras palabras, si la misma palabra aparece más de
una vez en
la entrada, no tiene sentido contarla dos veces.
Entonces, para evitar eso, lo
que podríamos hacer es usar una comprensión de conjuntos en su lugar.
Ahora ya hemos visto cómo hacerlo, para convertir una comprensión de lista en una comprensión establecida.
Simplemente reemplazamos los corchetes con llaves.
Entonces sigamos y
hagamos eso, y corramos eso. Ahora voy a proporcionar una cadena de entrada diferente
aquí, así que tenemos algunas palabras duplicadas.
Entonces el texto de entrada contiene palabras repetidas en la entrada.
De acuerdo, guárdelo, y puede ver en este ejemplo aquí abajo, obtenemos un conjunto devuelto, y
como los conjuntos no contienen duplicados, obtenemos cada palabra solo una vez.
Ahora tenga en cuenta que las palabras no necesariamente aparecen en orden.
De hecho, definitivamente no están en orden como puedes ver aquí. Aquí tenemos la palabra 'contiene', c es después de la letra
r alfabéticamente, y eso es porque, por definición, no hay orden en un conjunto.
Ahora es probable que esté haciendo esto para producir algún tipo de métrica, como una longitud
de palabra promedio, por lo que el orden no sería importante.
comprensiones establecidas también pueden ser bastante útiles.
Ahora, cuando esté considerando usar una comprensión, recuerde que las
Funcionan igual que las listas de comprensión y pueden ser muy útiles para evitar duplicados.
OK, entonces lo siguiente no es realmente un problema con las comprensiones.
Tiene que ver con la forma en que funciona la división.
Así que dividimos nuestro texto para obtener palabras,
y funciona bien siempre que cada palabra esté separada de la siguiente con espacios en blanco: espacios en blanco, pestañas espaciales y los nuevos caracteres de
línea, aunque no podemos ingresar saltos de línea en la entrada. Ahora, para ver lo que quiero decir,
ejecutemos el programa nuevamente y usemos algunos signos de puntuación.
Así que esta vez vamos a entrar ¿Qué
tienen ellos? Comma, la coma de los romanos alguna vez hizo por nosotros, alguna vez hecho por nosotros
con un signo de interrogación al final, entrar. Ahora el programa aún funciona, pero ahora muestran, por ejemplo, la palabra 'ellos'
aquí, como de longitud cinco, cinco caracteres, y eso se debe a la coma después de la palabra 'ellos'.
También tenemos a 'Romanos' mostrando un siete también, y 'nosotros' incluso tenemos tres aquí, y eso se debe al
signo de interrogación.
Ahora lo menciono porque podemos usar una comprensión anidada para solucionarlo.
Recuerde el problema, y ​​volveremos a él cuando veamos las comprensiones de anidación más adelante.
Bien,
ese es el primer desafío. Voy a cerrar ese desafío1. py ahora
Entonces, el segundo desafío, tuvimos que crear una lista de comprensión para convertir una tupla de pulgadas a centímetros.
Y justo como una nota aquí en caso de que no sea obvio, una lista de comprensión produce una lista, pero
no tiene que darse una lista para repetir.
Ahora puede usar una lista de comprensión con cualquier tipo iterable.
Entonces, vamos a escribir una comprensión aquí, ese fue su desafío, convertir
las dimensiones de pulgadas a centímetros.
Ahora nuestras dimensiones serán reemplazadas por tuplas para la longitud, el ancho y la altura, y como recordatorio son 2. 5 4 centímetros a
1 pulgada.
Y luego, aquí abajo, una vez que tenga los valores correctos, cambie el código para producir una tupla en
lugar de una lista.
De acuerdo, tenemos nuestro código allí imprimiendo la medida, y de nuevo en caso de que no sea
obvio, una lista de comprensión produce una lista, pero no tiene que darse la lista para iterar, esa es
la parte importante.
primer lugar, solo para demostrar que una comprensión puede usar cualquier tipo o secuencia iterable.
Y esa es la razón por la que realmente creé este desafío en
No tiene que proporcionar una lista para una lista de comprensión. Entonces, la lista o conjunto en la lista de
comprensión se refiere al tipo de objeto producido por la comprensión. De acuerdo, entonces tenemos el valor aquí, entonces
en la línea 13 ingresemos nuestra comprensión. Voy a eliminar ese código allí entre
los corchetes, y
vamos a ir con pulgadas multiplicadas por dos punto cinco cuatro por pulgada en pulgadas de medida de subrayado.
Dejaré el código para imprimir la medida de subrayado de centímetros.
ítem en la tupla, y lo multiplica por el número de centímetros en una pulgada, dos punto cinco cuatro.
Entonces la comprensión itera sobre cada
Entonces, ejecutemos esto para confirmar que funciona.
Y puede ver que hemos obtenido correctamente los valores, siete
punto seis dos, veinte punto tres dos y cincuenta punto ocho. Bien, ahora siguiente parte, necesitamos convertir
el código para producir una tupla en lugar de una lista.
Todo lo que tenemos que hacer es analizar la comprensión de la función de tupla para que funcione.
Así que agreguemos el código allí para hacer eso. Ahora la línea 18, haremos una medida de subrayado de cm igual a tupla, luego queremos
paréntesis, luego tenemos que agregar la comprensión de la lista a la llamada de tupla. medida de subrayado de pulgada por pulgada.
Entonces, en los
corchetes de izquierda
a derecha va a ser así, ahora podría simplemente pegar ese código, pero lo escribiré rápidamente,
una pulgada por dos puntos cinco cuatro, para una Y luego en la última línea,
imprimiremos cm_measurement nuevamente.
Así que, básicamente, esta llamada aquí en la línea 18 consiste en convertir una tupla de valores en una unidad,
pulgadas aquí, en una tupla equivalente usando otro conjunto de unidades, centímetros.
pero vamos a ejecutarla para asegurarnos de obtener los resultados correctos.
Y creo que eso es bastante impresionante para una línea de código,
Ahora tenemos los mismos resultados en una tupla.
De acuerdo, entonces voy a detener el video aquí. En el siguiente vamos a ver cómo agregar condiciones a nuestras comprensiones.
Así que te veré en el siguiente video.