Fundamentos de Programación y Python

1

¿Por qué aprender Python?

2

Introducción a Python

3

Conceptos Básicos de Programación

4

Práctica: Te doy la bienvenida a los ejercicios interactivos

5

Manipulación de Cadenas de Texto en Python

6

Enteros, Flotantes y Booleanos

7

Todo lo que Debes Saber sobre print en Python

8

Operaciones Matemáticas en Python

9

Operaciones de Entrada/Salida en Consola

Colección y Procesamiento de Datos en Python

10

Listas

11

Método slice

12

Listas de más dimensiones y Tuplas

13

Aplicación de Matrices

14

Diccionarios

15

Comprehension Lists en Python (CLASE NUEVA)

Control de Flujo en Python

16

Estructuras condicionales

17

Bucles y Control de Iteraciones

18

Generadores e Iteradores

Funciones y Manejo de Excepciones en Python

19

Uso de Funciones en Python

20

Funciones Lambda y Programación Funcional en Python

21

¿Cómo realizar una función recursiva en Python?

22

Manejo de Excepciones y Uso de Pass (CLASE NUEVA)

Programación Orientada a Objetos en Python

23

Fundamentos de Programación Orientada a Objetos en Python

24

Ejercicio Biblioteca con POO

25

Herencia en POO con Python

26

Objetos heredados

27

Los 4 pilares de la programacion orientada a objetos

28

Uso de super() en Python (CLASE NUEVA)

29

Superando los Fundamentos de Programación Orientada a Objetos en Python

Lectura y escritura de archivos

30

Manejo de Archivos .TXT (CLASE NUEVA)

31

Manejo de Archivos CSV (CLASE NUEVA)

32

Manejo de Archivos JSON (CLASE NUEVA)

Biblioteca estándar de Python

33

Biblioteca estándar en Python (CLASE NUEVA)

34

Librería Os, Math y Random (CLASE NUEVA)

35

Librería Statistics y Análisis Estadístico (CLASE NUEVA)

36

Proyecto final: Guerra naval

Conceptos avanzados de Python

37

Recapitulación de lo aprendido hasta ahora

38

Escribir código Pythonico y profesional

39

Comentarios y Docstrings en Python

40

Scope y closures: variables locales y globales

41

Anotaciones de tipo

42

Validación de tipos en métodos

43

Librería Collections y Enumeraciones

Decoradores

44

Decoradores en Python

45

Decoradores anidados y con parámetros

46

Uso de Decoradores en clases y métodos

Métodos y estructura de clases en Python

47

Métodos mágicos

48

Sobrecarga de operadores

49

Implementación de `if __name__ == "__main__":`

50

Metaprogramación en Python

51

Uso de *args y **kwargs

52

Métodos privados y protegidos

53

Gestión avanzada de propiedades

54

Métodos estáticos y de clase avanzados

Programación concurrente y asíncrona

55

Introducción a la concurrencia y paralelismo

56

Threading y multiprocessing en Python

57

Asincronismo con asyncio

58

Asincronismo y concurrencia

Creación de módulos y paquetes

59

Creación de módulos en Python

60

Gestión de paquetes

61

Publicación de paquetes en PyPI

Proyecto final

62

Implementación de un sistema completo

63

Implementación de un Sistema Completo

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
15 Hrs
41 Min
31 Seg
Curso de Python

Curso de Python

Carli Code

Carli Code

Comprehension Lists en Python (CLASE NUEVA)

15/63
Recursos

Una Comprehension List es una forma concisa de crear listas en Python, pues permite generar listas nuevas transformando cada elemento de una colección existente o creando elementos a partir de un rango. La sintaxis es compacta y directa, lo que facilita la comprensión del propósito de tu código de un vistazo.

La estructura básica de una Comprehension List es:

[expresión for elemento in iterable if condición]

Que se traduce a: “Crea una nueva lista evaluando nueva_expresión para cada elemento en el iterable.”

Ejercicios:

  1. Doble de los Números
    Dada una lista de números [1, 2, 3, 4, 5], crea una nueva lista que contenga el doble de cada número usando una List Comprehension.

  2. Filtrar y Transformar en un Solo Paso
    Tienes una lista de palabras ["sol", "mar", "montaña", "rio", "estrella"] y quieres obtener una nueva lista con las palabras que tengan más de 3 letras y estén en mayúsculas.

  3. Crear un Diccionario con List Comprehension
    Tienes dos listas, una de claves ["nombre", "edad", "ocupación"] y otra de valores ["Juan", 30, "Ingeniero"]. Crea un diccionario combinando ambas listas usando una List Comprehension.

  4. Anidación de List Comprehensions
    Dada una lista de listas (una matriz):

    pythonCopiar código
    matriz = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]
    

    Calcula la matriz traspuesta utilizando una List Comprehension anidada.

  5. Extraer Información de una Lista de Diccionarios
    Dada una lista de diccionarios que representan personas:

    pythonCopiar código
    personas = [
        {"nombre": "Juan", "edad": 25, "ciudad": "Madrid"},
        {"nombre": "Ana", "edad": 32, "ciudad": "Madrid"},
        {"nombre": "Pedro", "edad": 35, "ciudad": "Barcelona"},
        {"nombre": "Laura", "edad": 40, "ciudad": "Madrid"}
    ]
    

    Extrae una lista de nombres de personas que viven en “Madrid” y tienen más de 30 años.

  6. List Comprehension con un else
    Dada una lista de números [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], crea una nueva lista multiplicando por 2 los números pares y dejando los impares como están.

Soluciones

  1. Doble de los Números

    pythonCopiar código
    numeros = [1, 2, 3, 4, 5]
    dobles = [x * 2 for x in numeros]
    print("Dobles:", dobles)
    
  2. Filtrar y Transformar en un Solo Paso

    pythonCopiar código
    palabras = ["sol", "mar", "montaña", "rio", "estrella"]
    palabras_filtradas = [palabra.upper() for palabra in palabras if len(palabra) > 3]
    print("Palabras filtradas y en mayúsculas:", palabras_filtradas)
    
  3. Crear un Diccionario con List Comprehension

    pythonCopiar código
    claves = ["nombre", "edad", "ocupación"]
    valores = ["Juan", 30, "Ingeniero"]
    
    diccionario = {claves[i]: valores[i] for i in range(len(claves))}
    print("Diccionario creado:", diccionario)
    
  4. Anidación de List Comprehensions

    pythonCopiar código
    matriz = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]
    
    transpuesta_comprehension = [[fila[i] for fila in matriz] for i in range(len(matriz[0]))]
    print("Transpuesta con List Comprehension:", transpuesta_comprehension)
    
  5. Extraer Información de una Lista de Diccionarios

    pythonCopiar código
    personas = [
        {"nombre": "Juan", "edad": 25, "ciudad": "Madrid"},
        {"nombre": "Ana", "edad": 32, "ciudad": "Madrid"},
        {"nombre": "Pedro", "edad": 35, "ciudad": "Barcelona"},
        {"nombre": "Laura", "edad": 40, "ciudad": "Madrid"}
    ]
    
    nombres_madrid = [persona["nombre"] for persona in personas if persona["ciudad"] == "Madrid" and persona["edad"] > 30]
    print("Nombres de personas en Madrid mayores de 30 años:", nombres_madrid
    
  6. List Comprehension con un else

    pythonCopiar código
    numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    transformados = [x * 2 if x % 2 == 0 else x for x in numeros]
    print("Números transformados:", transformados)
    

Las Comprehension Lists en Python son una herramienta poderosa y versátil que permite escribir código más limpio y eficiente. Al dominar su uso, puedes realizar transformaciones y filtrados de datos de manera más concisa, lo que no solo mejora la legibilidad del código, sino que también puede optimizar su rendimiento.

Practicar con ejemplos como los presentados te ayudará a integrar esta técnica en tus proyectos de programación diaria, facilitando la manipulación de colecciones de datos de manera elegante y efectiva.

Aportes 57

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

excelente clase cada vez me gusta mas python y veo el potencial que tiene. un solo detalle la formula de los celcius a fahrenheit deberia ser : `fahrenheit = [(temp * 9 / 5) + 32 for temp in celsius]` en lugar de multiplicar por 32 deberia sumar. :)
Para ver un poco mejor y entender el código de Transposed: ```python # este es el código sin usar Comprehensions Lists transposed = [] for i in range(len(matrix[0])): print(i) transposed_row = [] for row in matrix: print(transposed_row) transposed_row.append(row[i]) transposed.append(transposed_row) print(transposed_row) print(transposed) # Resultado: [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 0 [] [1] [1, 4] [1, 4, 7] 1 [] [2] [2, 5] [2, 5, 8] 2 [] [3] [3, 6] [3, 6, 9] [[1, 4, 7], [2, 5, 8], [3, 6, 9]] ``` También pueden usar Numpy: <https://github.com/iecgerman/python-numpy-pandas/blob/master/clase08.ipynb> ![](https://static.platzi.com/media/user_upload/image-2220628d-920d-450d-b146-dcd0caa43eb7.jpg) pero siempre es bueno tratar de entender la lógica como como llegamos a algo.
Hola! Comparto la solución de los ejercicios propuestos 🚀 ![](https://static.platzi.com/media/user_upload/1-d9619c73-e7cd-4a21-823c-1a5a9ec64935.jpg) ![](https://static.platzi.com/media/user_upload/2-372c4924-2c5b-4ada-a7b2-695d68295a77.jpg) ![](https://static.platzi.com/media/user_upload/3-8d0a76d8-5726-4a1d-b9db-c2c94e14ab19.jpg)
🟢 **Cómo utilizar Dictionary Comprehension** Aprendiste cómo utilizar comprehension lists, pero también lo puedes realizar con diccionarios en Python. Las dictionary comprehensions son una **forma elegante y compacta de crear diccionarios**. La estructura es la siguiente: ```python {key:value for value in iterable if condition} ``` Por ejemplo: ```python { i: i**3 for i in range(1,20) if i % 3 != 0 } #Resultado: #{1: 1, 2: 8, 4: 64, 5: 125, 7: 343, # 8: 512, 10: 1000, 11: 1331, 13: 2197, # 14: 2744, 16: 4096, 17: 4913, 19: 6859} ``` De esta manera puedes crear comprehensions de otras estructuras de Python como tuplas y sets, siempre y cuando tengas en cuenta **cómo funciona su estructura**. ¡Nunca pares de aprender! 🚀🚀
No logro leer / interpretar de una forma lógica el código de la transposición en la comprehesion List. Alquien me puede ayudar? Gracias.
Al usar matrix\[0], se refiere al conjunto de datos en la posición 0: \[1, 2, 3] se hace una iteración desde 0 hasta 2, es decir, len(matrix\[0]) = 3. Esto se hace repetir el proceso por cada fila 3 veces cambiando de columna: fila 1, columna 1 = 1 fila 2, columna 1 = 4 fila 3, columna 1 = 7 transpuesto = \[1,4,7] fila 1, columna 2 = 2 fila 2, columna 2 = 5 fila 3, columna 2 = 8 transpuesto = \[2,5,8] fila 1, columna 3 = 3 fila 2, columna 3 = 6 fila 3, columna 3 = 9 transpuesto = \[3,6,9] Que excelentes clases!!!!!!
Con cariño pero aprendo mas de los comentarios q de la clase
Me perdí desde la parte de transponer, se omiten muchas cosas teóricas como explicar como funciona la operación. Me hace acordar cuando estaba en la universidad y un profesor no explicaba la resolución de una integral y la clase era para enseñar a integrar. Estoy que me ayudo con chat gpt y los comentarios.
Curiosamente para poder terminar el proyecto de batalla naval tuve que aprender List Comprehension y ahora sale la clase, gg. Saludos, buena clase.
no logro entender como compila el programa en el ejercicio de traspuesta, me confundo mucho.
hola , siendo sincero considero que para ser un curso básico introductorio, dan muchos elementos por hecho, creo que seria mejor que explicara mejor los elementos básicos
Gente, el ejercicio 4, aunque fue explicado por la profe no logro comprenderlo. Alguien podría adaptarse a mi nivel y explicármelo de manera más sencilla por favor? :D
Muy buena explicación y la clase fue muy entretenida. Sin duda Carla es muy buena.
El ejercicio que comentas utiliza una comprensión de listas para filtrar elementos de la lista `palabras`. En tu caso, `seleccion` tomará solo aquellas palabras que tengan más de 3 caracteres y que estén completamente en mayúsculas. Así, la salida de tu código será: ```python ["MONTAÑA", "RIO"] ``` Tu interpretación es correcta. Este uso de comprensión de listas es eficiente y mejora la legibilidad del código. ¡Continúa practicando y explorando más sobre Python!
Recordemos que la función `range()` en Python genera una secuencia de números enteros y se utiliza comúnmente en bucles como `for`. Se puede personalizar la secuencia especificando un inicio, un final y un paso. Si el paso no se especifica, se usa 1 por defecto. Algo importante a destacar es que la secuencia de números devueltos es cerrada al inicio pero abierta al final, es decir, el valor inicial forma parte de la secuencia pero el final no, quedándose uno antes. Por ejemplo: range(0,10) regresa: (0,1,2,3,4,5,6,7,8,9) range(0,1) regresa: (0) range(1,11,2) regresa: (1,3,5,7,9)
La transposición de una matriz consiste en intercambiar sus filas con sus columnas. Por ejemplo, si tienes una matriz: ``` 1 2 3 4 5 6 7 8 9 ``` Su transpuesta sería: ``` 1 4 7 2 5 8 3 6 9 ``` En Python, puedes lograr esto usando una **comprehension list**. En el contexto de la clase, se explicó cómo hacerlo de manera concisa. Si tienes dudas de cómo implementarlo, revisa el uso de `for` dentro de la comprensión para iterar sobre las filas y columnas.
El orden del for - if en las comprehension list si importa!! 1. for - if (filtrado) 2. if, else - for (transformación) 1 Cuando el `if` aparece **después del** `for`, actúa como un filtro: solo se incluyen los elementos que cumplen la condición. El `else` no puede usarse en esta posición. 2 Cuando el `if-else` aparece **antes del** `for`, actúa como una transformación: modifica el valor resultante de cada elemento según la condición. ```python # Filtrado filtrado = [persona["nombre"] for persona in personas if persona["edad"] > 30] # Transformación transformacion = [persona["edad"] if persona["edad"] > 30 else "Joven" for persona in personas] print(filtrado) # ["Ana", "Pedro", "Laura"] print(transformacion) # ["Joven", 32, 35, 40] ```# Filtrado filtrado = \[persona\["nombre"] for persona in personas if persona\["edad"] > 30] \# Transformación transformacion = \[persona\["edad"] if persona\["edad"] > 30 else "Joven" for persona in personas] print(filtrado) # \["Ana", "Pedro", "Laura"] print(transformacion) # \["Joven", 32, 35, 40]
¿Por qué se usa i? La letra i se utiliza frecuentemente como una abreviatura de "índice" (index). Esto es una práctica común, aunque no obligatoria. Por claridad, se puede usar un nombre más descriptivo según el contexto. Ejemplo: for i in range(5): print(i) ¿Por qué se usa i? La letra i se utiliza frecuentemente como una abreviatura de "índice" (index). Esto es una práctica común, aunque no obligatoria. Por claridad, se puede usar un nombre más descriptivo según el contexto. clear en terminal limpia la terminal
Iba tan bien, que acá me estanque :(
Esta clase debería estar después de la explicación de bucles y condicionales, aquí puede confundir muchísimo o por lo menos así me paso :(
```js personas = [ {"nombre": "Juan", "edad": 25, "ciudad": "Madrid"}, {"nombre": "Ana", "edad": 32, "ciudad": "Madrid"}, {"nombre": "Pedro", "edad": 35, "ciudad": "Barcelona"}, {"nombre": "Laura", "edad": 40, "ciudad": "Madrid"} ] newPersonList = [person for person in personas if person["ciudad"] == "Madrid" and person["edad"] >= 30] print(newPersonList) ```por si alguien lo necesita la solucion al quinto ejercicio.
También es posible escribir condicionales `if x else y:` completos. Con el ejemplo sería: `pares = [x if x%2 == 0 else "no par" for x in range(1, 11)]` Se pondrían solo los pares en formato de número, y los que no cumplan, en su posición aparecerá el texto `"no par"`. `['no par', 2, 'no par', 4, 'no par', 6, 'no par', 8, 'no par', 10]`
Las list comprehensions en Python son una forma concisa y eficiente de crear listas. En el ejemplo de la clase, tienes una lista de valores Celsius. La transformación a Fahrenheit ocurre dentro de la comprensión de listas así: ```python fahrenheit = [(temp * 9/5) + 32 for temp in celsius] ``` Internamente, Python itera sobre cada elemento de `celsius`, aplica la fórmula de conversión y construye una nueva lista. Esto reduce la necesidad de bucles explícitos, haciendo el código más legible y eficiente. Utiliza un solo bucle en una línea, que es uno de los beneficios de las comprehensions.
no entiendo que es append, ni leyendo ese documento en los recursos. The list data type has some more methods. Here are all of the methods of list objects: list.append(*x*) Add an item to the end of the list. Similar to `a[len(a):] = [x]`. en que momento de los videos hemos visto esto o se ha aclarado esto? me parece que con la transpuesta como que viajamos luz en el curso, sin entender varios conceptos.
Buuuuuuaaahjjj, esto es otro nivel de manejo de datos :o
La música me estresa jajajaja pero buena lección Carli!
hola, no entiendo del todo el paso a paso de la transpuesta de la matriz, entiendo el que hace, pero cno el como. alguien me podria aclarar esto? corrri unos codigos para ver diferencias y el que me dejo mas intrigado fue la diferencia entre este ```python transpose1=[row[i]for row in matrix for i in range(len(matrix[0]))] print(transpose1) #[1, 2, 3, 0, 4, 5, 6, 0, 7, 8, 9, 0] transpose2=[[row[i]for row in matrix] for i in range(len(matrix[0]))] print(transpose2) #[[1, 4, 7], [2, 5, 8], [3, 6, 9], [0, 0, 0]] ```
Para que se entienda mejor el ejercicio de transponer con for, le puse print y así podran ir viendo como i y row van aumentando y de doonde toma los datos para transponer. ```js matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] transponer = [] for i in range(len(matrix[0])): print("Inicia i: ", i) transponer_row = [] for row in matrix: print("Inicia row: ", row) print(row[i]) transponer_row.append(row[i]) print(transponer_row) transponer.append(transponer_row) print(transponer) print(transponer) ```matrix = \[\[1, 2, 3], \[4, 5, 6], \[7, 8, 9]]transponer = \[] for i in range(len(matrix\[0])):    print("Inicia i: ", i)    transponer\_row = \[]    for row in matrix:        print("Inicia row: ", row)        print(row\[i])        transponer\_row.append(row\[i])        print(transponer\_row)    transponer.append(transponer\_row)    print(transponer)print(transponer)
Hola, me tengo una duda,, contexto tenemos una matriz de 3x3 ```js vmatrix_base = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] ```Porque el rango da el mismo resultado de esta forma ```js print(range(len(vmatrix_base[0])), range(len(vmatrix_base))) ```range(0, 3) range(0, 3) entiendo que obtiene el rango (tamaño) de un vector y el rango de la matriz en si, pero llega a confundir, creo que la función range debería tener algo mas para que indique el tipo, o le estoy pidiendo mucho a python, jajaja o ya estoy delirando.
El otro día tenia que hacer este simple ejercicio, no se que me paso simplemente me pasme por 15 minutos como un noob "Dar como resultado un arreglo con los números impares con dos números X y Y tomándolos como un rango en PHP" Solución en PHP ahora que entendí todo con Python: ```js izq = $izq; $this->der = $der; } public function impares(){ $arr = array(); $izq = $this->izq; $der = $this->der; for($i = $izq; $i < $der+1; $i++){ if($i%2 != 0) array_push($arr, $i); } return $arr; } } $obj = new Impares(1, 21); print_r($obj->impares()); ```**Solució**def impares(izq, der):    impares = \[x for x in range(izq, der+1) if x%2 != 0]    return impares print(impares(int(input("Escriba el limite izquierdo: ")), int(input("Escriba el limite derecho: "))))**n con Python:** ```js def impares(izq, der): impares = [x for x in range(izq, der+1) if x%2 != 0] return impares print(impares(int(input("Escriba el limite izquierdo: ")), int(input("Escriba el limite derecho: ")))) ```**<u>AHORA ENTIENDO POR QUE A LA GENTE LE GUSTA PYTHON</u>**
para los impares odd = \[ x for x in range (1,21) if x%2 !=0] print (odd)
```js # crea una nueva lista multiplicando por 2 los números pares y dejando los impares como están. matraca = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(matraca) pares = [m * 2 if m % 2 == 0 else m for m in matraca] print(f"Los pares se multiplican por 2 y los impares quedaran igual \n{pares}") ```# crea una nueva lista multiplicando por 2 los números pares y dejando los impares como están. matraca = \[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(matraca) pares = \[m \* 2 if m % 2 == 0 else m for m in matraca] print(f"Los pares se multiplican por 2 y los impares quedaran igual \n{pares}")
`# crea una nueva lista multiplicando por 2 los números pares y dejando los impares como están.` `matraca = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]` `print(matraca)` `pares = [m * 2 if m % 2 == 0 else m for m in matraca]` `print(f"Los pares se multiplican por 2 y los impares quedaran igual \n{pares}")`
Python entiende que `temp` son los valores en Celsius a través del contexto en el que se define. En el ejemplo de comprensión de listas, `temp` se utiliza como el iterador en el bucle `for`, que recorre cada elemento de la lista de Celsius. Así, cada valor se asigna a `temp` durante la iteración, aplicando la fórmula de conversión a Fahrenheit. El uso del `for` y la estructura de la comprensión de listas permiten que Python asocie directamente `temp` con los elementos de la lista original.
Hola , en este curso no me gusta que haya desinformacion, ya ha pasado en este mismo curso por favor revisar las clases antes de subirlas porque la gente puede aprender algo erroneo
Hola a continuación les voy a dejar mi solución a los dos primeros ejercicios de la descripción, ya se que están resueltos pero intente hacerlos sin mirar la solución, me demore demasiado en el segundo pues soy muy primerizo en esto, un consejo por si alguien lo necesita, me ayudo mucho hacer en varias líneas de código y luego si condensarlo a una, también dejo unas líneas comentadas que me ayudaron a llegar a la solución. ```python list_1 = [x for x in range(1,21)] print(list_1) list_2 = [pos*2 for pos in list_1] print(list_2) palabras = ["Sol", "Mar", "Montaña", "Rio", "Estrella"] print(palabras) #palabras2 =[posi.upper() for posi in palabras for i in range(0,4) if len(palabras[i]) > 3] palabras2 = [palabras[i].upper() for i in range(0,5) if len(palabras[i]) > 3] #palabras3 = ["asdd","b","cdsds","dsdsd","e"] #palabras4 = [palabras3[i] for i in range(0,5) if len(palabras3[i]) > 3] #print(palabras4) print(palabras2) ```
transposed = \[\[row\[i] *for* row *in* matrix] *for* i *in* range(len(matrix\[0]))]
excelente, me encantan estas clases con ejemplos poco a poco le estoy cojiendo el tiro. Solo me faltan tener un listado de comandos para ir aprendiendolos de memoria.
Mi solución para las tareas de la clase ```js """ Doble de los Números Dada una lista de números [1, 2, 3, 4, 5], crea una nueva lista que contenga el doble de cada número usando una List Comprehension.""" list = [1,2,3,4,5] print("List: ", list) double = [x * 2 for x in range(1,6)] print("Double:", double) """Filtrar y Transformar en un Solo Paso Tienes una lista de palabras ["sol", "mar", "montaña", "rio", "estrella"] y quieres obtener una nueva lista con las palabras que tengan más de 3 letras y estén en mayúsculas.""" elements = ["sol", "mar", "montaña", "rio", "estrella"] long_filter = [x.upper() for x in elements if len(x) >= 4] print(long_filter) """Crear un Diccionario con List Comprehension Tienes dos listas, una de claves ["nombre", "edad", "ocupación"] y otra de valores ["Juan", 30, "Ingeniero"]. Crea un diccionario combinando ambas listas usando una List Comprehension.""" keys = ["name", "age", "job"] values = ["Paolo", "27", "Analyst"] dic = dict(zip(keys, values)) print(dic) #En ambos de estos casos usamos el empaquetador zip para emparejar cada llave a su valor y crear un diccionario de esta manera dic = {key: value for key, value in zip(keys, values)} print(dic) """Anidación de List Comprehensions Dada una lista de listas (una matriz): matrix Calcula la matriz traspuesta utilizando una List Comprehension anidada.""" matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] transposed = [[row[i] for row in matrix] for i in range(len(matrix[0]))] print(matrix) print(transposed) """Extraer Información de una Lista de Diccionarios Dada una lista de diccionarios que representan personas: personas Extrae una lista de nombres de personas que viven en “Madrid” y tienen más de 30 años.""" personas = [ {"nombre": "Juan", "edad": 25, "ciudad": "Madrid"}, {"nombre": "Ana", "edad": 32, "ciudad": "Madrid"}, {"nombre": "Pedro", "edad": 35, "ciudad": "Barcelona"}, {"nombre": "Laura", "edad": 40, "ciudad": "Madrid"} ] # Aquí usamos los condicionales if(si) y and(y) para preguntar exactamente por lo que se nos pidió for persona in personas: if persona["edad"] > 30 and persona["ciudad"] == "Madrid": print("Persona que vive en madrid y tiene más de 30: " + persona["nombre"]) """List Comprehension con un else Dada una lista de números [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], crea una nueva lista multiplicando por 2 los números pares y dejando los impares como están.""" list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print("List: ", list) new_list = [x * 2 if x % 2 == 0 else x for x in list] print("New_list:", new_list) #Mi solución en este caso es decir que si no deje la x como está aunque inicialmente había utilizado x * 1 que es lo mismo ```
Añadí una pequeña modificación para transformar a fahreheit los grados que nosotros ingresemos en la consola. ```js Celsius = int(input("Ingrese los grados celsius")) Fahrenheit = (Celsius * 9/5)+32 print ("El total es:", Fahrenheit) ```
buenas tardes, alguien podria ayudarme a entender que pasa en este ejemplo? squares = list(map(lambda x: x\*\*2, range(10))) gracias de ante mano.
Aqui entrego el script sin Listas comprimidas(Comprehension List), si alguien desea tenerlo. matrix = \[\[1,2,3],\[4,5,6],\[7,8,9]] transposed =list() for i in range(len(matrix\[0])):    new\_row = \[]    for row in matrix:        new\_row.append(row\[i])    transposed.append(new\_row) print(transposed)
me gusto esta clase, para optimizar código , que bueno
## Comprenhension List Las **List Comprehensions** son una forma compacta y eficiente de crear listas, basadas en bucles y condiciones. Permiten generar listas en una sola línea de código, mejorando la legibilidad. **\[nuevo\_elemento for elemento in iterable]** ### Estructura básica: * `nuevo_elemento`: Lo que se agregará a la nueva lista. * `elemento`: Cada valor que se toma del `iterable` (como una lista, rango, etc.). * `iterable`: Fuente de los datos sobre los que iteras (una lista, rango, etc.). ### Ejemplo básico: Crear una lista con los números del 0 al 9: numeros = \[x for x in range(10)] \# Salida: \[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ### Estructura con condición: Puedes agregar condiciones para filtrar los elementos que se incluirán en la lista: \[nuevo\_elemento for elemento in iterable if condición]Ejemplo con condición: Crear una lista de los números pares del 0 al 9: pares = \[x for x in range(10) if x % 2 == 0] \# Salida: \[0, 2, 4, 6, 8] ### Ejemplo con transformación: Modificar los elementos mientras los agregas a la nueva lista: cuadrados = \[x\*\*2 for x in range(10)] \# Salida: \[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] ### Comprehension anidada: Puedes usar comprehensions dentro de otras comprehensions para trabajar con estructuras más complejas, como matrices: matriz = \[\[x for x in range(3)] for \_ in range(3)] \# Salida: \[\[0, 1, 2], \[0, 1, 2], \[0, 1, 2]] ### Ventajas: * Más concisas que los bucles tradicionales. * Más legibles cuando son simples. * Generalmente más rápidas que construir listas con bucles `for`. Las List Comprehensions son útiles para crear listas de manera eficiente y legible, aplicando transformaciones y filtros de forma sencilla.
Comprehension Lists nos permite escribir los codigos de manera mas eficiente , nos permiten crear listas de elementos en una sola línea de código. Comprehension Lists es una herramienta muy útil para hacer que nuestro código resulte más compacto y fácil de leer
Gracias por esos TIPS como lo es limpiar pantalla de Visual Studio Code con CLEAR. También se puede usar uno abreviado que es CLS.
Desarrolle por mi cuenta este ejercicio: raiz = \[(x\*\*0.5) for x in range (4,10)] print ("El resultado de la raiz de los numeros de la lista es: ", raiz) Y quiero que muestre la respuesta con un decimal. Use round pero como son multiples respuestas no me permite. Hay alguna forma de hacer que muestre determinada cantidad de decimales para multiples respuestas? Gracias.
Lo que hizo ella para encontrar los números pares en un rango de 1 a 20 es que puso la condición `if` para solo los números que sean divisibles entre dos y que el módulo sea igual a cero. Es decir, todos los números pares (2, 4, 6, 8, ...). Entiendo el módulo como el sobrante de una división que no se pudo dar en número entero. Si dividimos 9 entre 5, el resultado sería un decimal. En este caso, el 5 entra una sola vez en el 9 y hacen falta 4 para llegar al 9, y ese sería el valor del módulo.
Excelente clase. La ultima parte de transponer una matriz me parecio genial. Transponer una matrix es una operacion de algebra lineal que consiste en intercambiar filas con columnas
By: ChatGPT Exacto! Has entendido bien el funcionamiento del código. Lo explicaste correctamente. Aquí está la confirmación de lo que mencionaste: 1. `for i in range(len(matrix[0]))`: * Este bucle externo se encarga de **iterar sobre los índices de las columnas** de la matriz original, es decir, selecciona los índices 0, 1 y 2 (que representan las posiciones de las columnas en cada fila). 2. `[row[i] for row in matrix]`: * Este bucle interno recorre cada fila (`row`) de la matriz y **selecciona el elemento en la columna** `i`. * Por ejemplo: * Para `i = 0`, selecciona el primer elemento de cada fila: `[1, 4, 7]`. * Para `i = 1`, selecciona el segundo elemento de cada fila: `[2, 5, 8]`. * Para `i = 2`, selecciona el tercer elemento de cada fila: `[3, 6, 9]`. En resumen, el bucle **externo** selecciona qué columna procesar, mientras que el bucle **interno** toma los elementos correspondientes de cada fila para formar una nueva fila en la matriz transpuesta
mis resueltos: ```js #Ejercicios propuestos: #1 numbers=[1,2,3,4,5] newlist=[x*2 for x in numbers] print(newlist) #2 palabras= ["sol", "mar", "MONTAÑA", "rio", "estrella"] newlist= [word for word in palabras if len(word)>3 and word.isupper()] print(newlist) #3 claves= ["nombre", "edad", "ocupación"] valores = ["Juan", 30, "Ingeniero"] dicc = {clave:valor for clave, valor in zip(claves,valores) } print(dicc) #5 personas = [ {"nombre": "Juan", "edad": 25, "ciudad": "Madrid"}, {"nombre": "Ana", "edad": 32, "ciudad": "Madrid"}, {"nombre": "Pedro", "edad": 35, "ciudad": "Barcelona"}, {"nombre": "Laura", "edad": 40, "ciudad": "Madrid"} ] persona= [persona['nombre'] for persona in personas if persona['ciudad'].lower()=="madrid"] print(persona) #6 numbers= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] newlist = [num*2 if num%2==0 else num for num in numbers ] print(newlist) ```
para mayor rapidez utilicen cls para limpiar en lugar de clear
Les comparto el código para Convertir de Celcius a Fahrenheit ```python # Convertir de Celcius a Fahrenheit celcius = [number for number in range(0, 50, 10)] print(celcius) # °F = (9/5 * °C) + 32 fahrenheit = [(9/5 * temp) + 32 for temp in celcius] print(f"Temperatura en °F: ", fahrenheit) ```
Una manera más limpia para que no tengas que pasar la lista\[0], seria: `transposed = []` `for x in range(len(matrix)):    transposed_row = []    for y in matrix:        transposed_row.append(y[x])    transposed.append(transposed_row)`
```python celsius = [0,10,20,30,40] fahrenheit = [(temp * 9/5) + 32 for temp in celsius] print("Temperatura en F:", fahrenheit) ```Resultado: Temperatura en F: \[32.0, 50.0, 68.0, 86.0, 104.0]
Hola! No me estaba funcionando la solución del ejercicio 5. El error que ChatGPT pudo encontrar es que se necesita **convertir** el valor de `"edad"` a un entero (`int`) antes de realizar la comparación. De esta forma, la solución es: filtro\_Madrid = \[persona\["nombre"] for persona in personas if persona\["ciudad"] == "Madrid" and int(persona\["edad"]) > 30] ```js personas = [{"nombre": "Juan", "edad": "25", "ciudad": "Madrid"}, {"nombre": "Ana", "edad": "32", "ciudad": "Madrid"}, {"nombre": "Pedro", "edad": "35", "ciudad": "Barcelona"}, {"nombre": "Laura", "edad": "40", "ciudad": "Madrid"}] filtro_Madrid = [persona["nombre"] for persona in personas if persona["ciudad"] == "Madrid" and int(persona["edad"]) > 30] print("Personas que viven en Madrid con más de 30 años:", filtro_Madrid) ```Espero les sirva!