CursosEmpresasBlogLiveConfPrecios

Proyecto: filtrando datos

Clase 12 de 21 • Curso de Python Intermedio: Comprehensions, Lambdas y Manejo de Errores

Clase anteriorSiguiente clase

Contenido del curso

Preparación antes de empezar
  • 1
    Algunas cosas que aprenderás sobre Python en este curso

    Algunas cosas que aprenderás sobre Python en este curso

    01:36
  • 2
    El Zen de Python

    El Zen de Python

    08:30
  • 3
    ¿Qué es la documentación?

    ¿Qué es la documentación?

    04:33
Entorno virtual
  • 4
    ¿Qué es un entorno virtual?

    ¿Qué es un entorno virtual?

    03:56
  • 5
    El primer paso profesional: creación de un entorno virtual

    El primer paso profesional: creación de un entorno virtual

    08:30
  • 6
    Instalación de dependencias con pip

    Instalación de dependencias con pip

    09:53
  • quiz Entorno virtual

Alternativa a los ciclos: comprehensions
  • 7
    Listas y diccionarios anidados

    Listas y diccionarios anidados

    12:32
  • 8
    List comprehensions

    List comprehensions

    07:39
  • 9
    Dictionary comprehensions

    Dictionary comprehensions

    06:00
  • quiz Alternativa a los ciclos: comprehensions

Conceptos avanzados de funciones
  • 10
    Funciones anónimas: lambda

    Funciones anónimas: lambda

    05:42
  • 11
    High order functions: filter, map y reduce

    High order functions: filter, map y reduce

    10:40
  • 12
    Proyecto: filtrando datos

    Proyecto: filtrando datos

    14:35
  • quiz Conceptos avanzados de funciones

Manejo de errores
  • 13
    Los errores en el código

    Los errores en el código

    08:54
  • 14
    Debugging

    Debugging

    12:27
  • 15
    Manejo de excepciones

    Manejo de excepciones

    10:53
  • 16
    Poniendo a prueba el manejo de excepciones

    Poniendo a prueba el manejo de excepciones

    04:12
  • 17
    Assert statements

    Assert statements

    07:55
  • quiz Manejo de errores

Manejo de archivos
  • 18
    ¿Cómo trabajar con archivos?

    ¿Cómo trabajar con archivos?

    06:52
  • 19
    Trabajando con archivos de texto en Python

    Trabajando con archivos de texto en Python

    12:27
  • quiz Manejo de archivos

Conclusión
  • 20
    Reto final: Juego del Ahorcado o Hangman Game

    Reto final: Juego del Ahorcado o Hangman Game

    03:43
  • 21
    Continúa tu camino profesional con Python

    Continúa tu camino profesional con Python

    02:17
    Royer Guerrero Pinilla

    Royer Guerrero Pinilla

    student•
    hace 5 años

    Data ⬇⬇⬇

    DATA = [ { 'name': 'Facundo', 'age': 72, 'organization': 'Platzi', 'position': 'Technical Coach', 'language': 'python', }, { 'name': 'Luisana', 'age': 33, 'organization': 'Globant', 'position': 'UX Designer', 'language': 'javascript', }, { 'name': 'Héctor', 'age': 19, 'organization': 'Platzi', 'position': 'Associate', 'language': 'ruby', }, { 'name': 'Gabriel', 'age': 20, 'organization': 'Platzi', 'position': 'Associate', 'language': 'javascript', }, { 'name': 'Isabella', 'age': 30, 'organization': 'Platzi', 'position': 'QA Manager', 'language': 'java', }, { 'name': 'Karo', 'age': 23, 'organization': 'Everis', 'position': 'Backend Developer', 'language': 'python', }, { 'name': 'Ariel', 'age': 32, 'organization': 'Rappi', 'position': 'Support', 'language': '', }, { 'name': 'Juan', 'age': 17, 'organization': '', 'position': 'Student', 'language': 'go', }, { 'name': 'Pablo', 'age': 32, 'organization': 'Master', 'position': 'Human Resources Manager', 'language': 'python', }, { 'name': 'Lorena', 'age': 56, 'organization': 'Python Organization', 'position': 'Language Maker', 'language': 'python', }, ]
      Luis Ruiz Ramos

      Luis Ruiz Ramos

      student•
      hace 5 años

      Grandeeee

      Juan Ochoa

      Juan Ochoa

      student•
      hace 5 años

      Gracias!!

    Luis Arturo Cruz Cruz

    Luis Arturo Cruz Cruz

    student•
    hace 5 años

    Hola,

    Les comparto una alternativa al operador | para versiones de Python mayores a 3.5 pero menores a 3.9

    old_people = list(map(lambda worker: {**worker, **{"old": worker["age"] > 70}}, DATA))

    Fuente

    https://stackoverflow.com/questions/38987/how-do-i-merge-two-dictionaries-in-a-single-expression-taking-union-of-dictiona

      Harold Yesid Calderon Vega

      Harold Yesid Calderon Vega

      student•
      hace 5 años

      Buen aporte, gracias.

      Eber Laurente Lliuyacc

      Eber Laurente Lliuyacc

      student•
      hace 5 años

      Buen aporte. Me sirvió para resolver el reto🤘

    Josue Farley Lopez Carvajal

    Josue Farley Lopez Carvajal

    student•
    hace 5 años

    Un tip: Pueden colocar DATA en un archivo aparte y luego importarlo en el archivo donde van a trabajar:

    from data_filtering_db import DATA
      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      Más limpio el código.

      Mauricio Gonzalez Falcon

      Mauricio Gonzalez Falcon

      student•
      hace 4 años

      Eso hice! Gracias por el tip :D

    David Eduardo Bueno Núñez

    David Eduardo Bueno Núñez

    student•
    hace 5 años
    #Con list comprehensions adults = [worker ['name'] for worker in DATA if worker ['age'] > 18] old_people = [{**worker, **{'old': worker['age'] > 70}} for worker in DATA] #Con high order functions all_python_devs = list(filter(lambda worker: worker['language'] == 'python', DATA)) all_python_devs = list(map(lambda worker: worker['name'], all_python_devs)) all_platzi_workers = list(filter(lambda worker: worker['organization'] == 'Platzi', DATA)) all_platzi_workers = list(map(lambda worker: worker['name'], all_platzi_workers))
      Juan Sebastian Mesa

      Juan Sebastian Mesa

      student•
      hace 5 años

      Podrías explicarnos el código que usaste para old_people? hasta ahora eres el único que arrojó como resultado los diccionarios con la llave adicional (que es lo que el reto planteaba)

      David Eduardo Bueno Núñez

      David Eduardo Bueno Núñez

      student•
      hace 5 años

      Es sencillo, más bien lo que se tiene que entender es como agregar una nueva key a un diccionario.

      En mi caso tengo python 3.8.3, por lo que utilicé la sintaxis z = {**x, **y} --> para sumar diccionarios o agregar una nueva key.

      {**worker, **{'old': worker['age'] > 70}} for worker in DATA
      • Leeyendo esta linea de código sería algo así:

      Para el diccionario worker en DATA, voy a guardar en ese mismo diccionario una nueva key llamada old que regrese un True si la key age es mayor a 70, y que regrese un False si es menor a 70.

      • Si tienes Python 3.9 tendrás que utilizar esta sintaxis: z = x | y
    Jhonfred Galarraga

    Jhonfred Galarraga

    student•
    hace 5 años

    Reto completado:

    def main(): all_python_devs = list(filter(lambda worker: worker['language'] == 'python', DATA)) all_python_devs = list(map(lambda worker: worker['name'], all_python_devs)) all_platzi_workers = list(filter(lambda worker: worker['organization'] == 'Platzi', DATA)) all_platzi_workers = list(map(lambda worker: worker['name'], all_platzi_workers)) adults = [worker['name'] for worker in DATA if worker['age'] > 18] old_confirmation = lambda worker_age: worker_age > 70 old_people = [worker | {'old': old_confirmation(worker['age'])} for worker in DATA] for worker in old_people: print(worker) if __name__ == '__main__': main()
      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      Que bien !

      Diana Erika Garrammone

      Diana Erika Garrammone

      student•
      hace 4 años

      Muy bueno, gracias!

    Eduardo Gutiérrez Contreras

    Eduardo Gutiérrez Contreras

    student•
    hace 4 años

    Uso Ubuntu 20.04 y me daba este error: TypeError: unsupported operand type(s) for |: 'dict' and 'dict' Y pues resulta que yo empecé acá macho alfa pelo en pecho todo empoderado haciendo el curso con mi instalación por default de Python en Ubuntu 20.04 (Xubuntu, para ser más preciso). Pero ¡oh sorpresa! Ubuntu 20.04 utiliza Python 3.8 y ni se te ocurra actualizarlo a 3.9 porque podrías romper algunos programas de Ubuntu. ¿Solución? Virtual Environments. Y pues sí que se puede instalar Python 3.9 en Ubuntu 20.04, sólo que el intérprete se llama python3.9 en lugar de python3 (esto para no romper los paquetes que ya funcionan en Ubuntu hechos para la versión 3.8). Para no tener que escribir Python3.9 cada vez que ejecutemos nuestro código vamos a crear un entorno virtual con el nuevo intérprete, una vez instalado. Para instalarlo usamos:

    sudo apt install python3.9 python3.9-venv

    Ya con ello nos vamos a la carpeta en la que vamos a trabajar, inicializamos git si acaso no lo hemos hecho y si no hemos iniciado ++antes++ un venv podemos iniciarlo justo como Facundo nos enseñó, pero usando el intérprete de Python 3.9:

    python3.9 -m venv venv

    Peeero si estás como yo, que hizo todo desde antes con la versión 3.8, seguro ya tienes un directorio venv que creaste usando Python 3.8. Yo decidí renombrarlo para no tener problemas y poder seguir usando el alias que ya hicimos clases atrás (o también puedes eliminarlo para no tener que después agregar venv3.8 lo a tu .gitignore):

    mv venv venv3.8

    y ahora sí, a crear tu venv pero con el intérprete python3.9

    python3.9 -m venv venv

    actívalo usando el alias que hicimos en clases anteriores y listo:

    avenv

    Ya dentro del entorno virtual dale python3 -V y te debe de dar que estás usando la versión 3.9 (ojo la V es mayúscula)

    (venv) $ python3 -V Python 3.9.5

    La parte más difícil de todo esto es que, partir de ahora, cada vez que crees tu entorno virtual, ++no debes olvidar++ usar python3.9 ... Ya por último, si utilizas el botoncito de "play" de Visual Studio Code para correr tus scripts de python (yo así soy de flojo), debes de cambiar el intérprete por default. En VS Code, presiona Ctrl+Shift+P y busca Preferences: Open User Settings Ya estando ahí ahora busca python: default interpreter. Te debe de salir la ruta que es /bin/python3, simplemente cámbiala a /bin/python3.9 y listo.

    ¡Felices sesiones maratónicas de programación!

      Consuelo Castañeda Lopez

      Consuelo Castañeda Lopez

      student•
      hace 4 años

      me salia el mismo error y mi solución fue hacerlo en windows jajaajajaja perdón me estrese :(

      Mauricio Gonzalez Falcon

      Mauricio Gonzalez Falcon

      student•
      hace 4 años

      Gracias por tu aporte jaja, yo lo único que hago es escribir en ubuntu:

      python3.9 archivo.py

      Y me funciona todo normal

    Jesús Kaimorts Díaz Medina

    Jesús Kaimorts Díaz Medina

    student•
    hace 4 años

    Proyecto de Filtrar datos

    La forma en como he entendido mejor map y filter es conociendo que a cada una se le pasa una funcion especial. En otros lenguajes, como Java, cuando se utiliza la funcion Filter() se le debe de pasar un Predicate, y cuando se utiliza un Map() otra funcion como: UnaryOperator, Function, etc.

    • Predicate: Es una funcion que toma un parametro y el resultado de una comparacion.

    La idea queda mas clara cuando guardo ese Predicate en una variable, usando la lambda, y otra lambda para usar mi funcion de mapeo.

    1. Version con List Comprehension:
    # Usando 'List Comprehension' all_python_devs = [worker["name"] for worker in DATA if worker["language"] == "python"] label_python = "use Python - with List Comprehension" show_workers(all_python_devs, label_python)
    1. Version con High Order Function:
    # Usando 'High Order Function' Predicate = lambda worker : worker["language"] == "python" all_python_devs = list(filter(Predicate, DATA)) MapFunc = lambda worker : worker["name"] all_python_devs = list(map(MapFunc, all_python_devs)) label_python = "use Python - with High Order Functions" show_workers(all_python_devs, label_python)

    Ademas, he implementado una funcion show_workers(), para mostrar el contenido de dicha transformacion: Filtrado y mapeo:

    def show_workers(workers, label=""): print("People who", label) for i, worker in enumerate(workers): print(f"\t{(i+1)}. {worker}")

    A continuacion comparto las distintas tareas pedidas para el proyecto:

    1. Trabajadores que laboran en Platzi

      • Version con 'List Comprehension'
        all_platzi_workers = [worker["name"] for worker in DATA if worker["organization"] == "Platzi"] label_platzi = "work at Platzi - with List Comprehension" show_workers(all_platzi_workers, label_platzi)
      • Version con 'High Order Function'
        # Usando 'High Order Function' Predicate = lambda worker : worker["organization"] == "Platzi" all_platzi_workers = list(filter(Predicate, DATA)) MapFunc = lambda worker : worker["name"] all_platzi_workers = list(map(MapFunc, all_platzi_workers)) label_python = "work at Platzi - with High Order Functions" show_workers(all_platzi_workers, label_python)
    2. Agregar la llave old a un nuevo diccionario

      • Version con 'List Comprehension'
        all_platzi_workers = [worker["name"] for worker in DATA if worker["organization"] == "Platzi"] label_platzi = "work at Platzi - with List Comprehension" show_workers(all_platzi_workers, label_platzi)
      • Version con 'High Order Function'
        #MapFunc = lambda worker : worker | {"old": worker["age"] > 70} MapFunc = lambda worker : {**worker, **{"old": worker["age"] > 70}} old_people = list(map(MapFunc, DATA)) label_old = "is old - with High Order Functions" show_workers(old_people, label_old)

    Explicacion de la llave old

    Lo que en realidad hace la siguiente linea de codigo:

    {**worker, **{"old": worker["age"] > 70}}

    Es incrustar, pegar, agregar, la llave old en el diccionaro, pero como?:

    1. Obtenemos el diccionario, y todos sus campos en el usando {**worker}:
    {'name': 'Facundo', 'age': 72, 'organization': 'Platzi', 'position': 'Technical Coach', 'language': 'python'}
    1. Obtenemos un diccionario con los campos old y su valor correspondiente, segun la condicion establecida: {**{"old": worker["age"] > 70}}
    {'old': True}

    Como podemos ver, la edad de Facundo es 72 anios, por esa razon su valor es True

    1. Finalmente, agregamos llave old en el diccionario de worker: {**worker, **{"old": worker["age"] > 70}}
    {'name': 'Facundo', 'age': 72, 'organization': 'Platzi', 'position': 'Technical Coach', 'language': 'python', 'old': True}
    Daniel Eduardo Sosa Martin

    Daniel Eduardo Sosa Martin

    student•
    hace 5 años
    def run(): all_python_devs = list(filter(lambda worker: worker["language"] == "python", DATA )) all_python_devs = list(map(lambda worker: worker["name"], all_python_devs)) all_platzi_workers = list(filter(lambda worker: worker["organization"] == "Platzi", DATA )) all_platzi_workers = list(map(lambda worker: worker["name"], all_platzi_workers)) adults = [worker["name"] for worker in DATA if worker["age"] > 18] oll_people = [worker | {"oll": worker["age"] > 70} for worker in DATA] for worker in oll_people: print(worker) if __name__ == "__main__": run()
      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      Buen código.

      fidel angel ochoa

      fidel angel ochoa

      student•
      hace 4 años

      entonces este es una excepcion del uso del "if" en "list comprehension"? a lo que entiendo el "if" va dentro de la parte donde especificamos que agregaremos al nuevo diccionario, ¿Porque es esto?

    Andres Felipe Ramirez

    Andres Felipe Ramirez

    student•
    hace 5 años

    en consumo de recursos qué es más eficiente, comprehensions o high order functions?

      Omar Daniel Centeno

      Omar Daniel Centeno

      student•
      hace 5 años

      ¡Hola!

      List Comprehensions gana, ya que ejecuta el ciclo de forma directa, sin tener que llamar a una función. También es más sencilla de leer que las funciones de orden superior.

      Sin embargo, List Comprehensions siempre regresa un iterable y en caso de necesitar como resultado un número único debemos utilizar high order fuctions como reduce().

      Andres Camacho

      Andres Camacho

      student•
      hace 4 años

      En grandes cantidades de datos, List Comprehensions puede tener problemas por como utiliza la memoria. Más información por acá

    Royer Guerrero Pinilla

    Royer Guerrero Pinilla

    student•
    hace 5 años

    Map es util cuando quiero filtar un dato de algo es lo mas parecido al list comprehension sin condicional Filter es util cuando quiero usar un operador logico para filtar los datos

      Josue Farley Lopez Carvajal

      Josue Farley Lopez Carvajal

      student•
      hace 5 años

      map no es un filtro, lo que hace es generar una nueva lista que contiene el resultado de aplicar una función a cada elemento de la lista original. Es fácil confundirse cuando la función aplicada extrae datos del elemento original en lugar de transformarlo.

    Cesar Elías Armendariz Ruano

    Cesar Elías Armendariz Ruano

    student•
    hace 5 años

    Código en pares:

    all_python_devs

    all_python_devs = [worker["name"] for worker in DATA if worker['language'] == 'python'] all_python_devs = list( filter(lambda worker: worker['language'] == 'python', DATA)) all_python_devs = list(map(lambda worker: worker['name'], all_python_devs))

    all_platzy_workers

    all_platzy_workers = [worker['name'] for worker in DATA if worker['organization'] == 'Platzi'] all_platzy_workers = list( filter(lambda worker: worker['organization'] == 'Platzi', DATA)) all_platzy_workers = list( map(lambda worker: worker['name'], all_platzy_workers))

    adults

    adults = list(filter(lambda worker: worker['age'] >= 18, DATA)) adults = list(map(lambda worker: worker['name'], adults)) adults = [worker['name'] for worker in DATA if worker['age'] >= 18]

    old_people

    old_people = list(map(lambda worker: worker | { 'old': worker['age'] > 70}, DATA)) old_people = [{**worker, **{'old': worker['age'] > 70}} for worker in DATA]

    para recorrer cualquier variable

    for worker in old_people: print(worker)
      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      Gracias.

      Harold Giovanny Uribe Romero

      Harold Giovanny Uribe Romero

      student•
      hace 4 años

      Que significa los asteriscos en la última sentencia del old_people?

    Ivan Dario Uribe Gonzalez

    Ivan Dario Uribe Gonzalez

    student•
    hace 5 años

    ¿Es posible contar la cantidad de elementos que cumplen con cierta función? ¿Cómo se haría?

      Matthias Ignacio Clein Espinoza

      Matthias Ignacio Clein Espinoza

      student•
      hace 5 años

      Puede que te sirva la función len()

      print(len(DATA)) #10 adults = list(filter(lambda worker: worker["age"] > 18 , DATA)) print(len(adults)) #9

      Saludos!

    Manuel Espitia

    Manuel Espitia

    student•
    hace 5 años

    Hola! Alguien sabe cómo se hace el old_people con list comprehensions? No sé cómo se hace, he visto algunas soluciones usando ** pero no sé qué significa y tampoco me funcionó. Agradezco si alguien me ayuda.

    Reto_clase13.PNG

      Jhonfred Galarraga

      Jhonfred Galarraga

      student•
      hace 5 años

      Esta fue mi solución al problema.

      old_confirmation = lambda worker_age: worker_age > 70 old_people = [worker | {'old': old_confirmation(worker['age'])} for worker in DATA]

      Utilice una función lambda para realizar la confirmación y el operador | para sumarle el nuevo diccionario. Si no entiendes como funciona comentamelo.

      Manuel Espitia

      Manuel Espitia

      student•
      hace 5 años

      Ahí te devuelve un item nuevo con llave "old" y valor "edad" si es mayor de 70, cierto? Sabes cómo se haría para que devuelva verdadero o falso? Gracias por tu aporte, creo está interesante.

    Alfonso Neil Jiménez

    Alfonso Neil Jiménez

    student•
    hace 4 años

    Uso del operador | (pipe) para unir diccionarios en Python

    Danilo Huamani Zapata

    Danilo Huamani Zapata

    student•
    hace 4 años

    RETO HIGH ORDER FUNCTION "all_python_devs"

    all_python_devs = list(filter(lambda worker: worker["language"] == "python", DATA)) all_python_devs = list(map(lambda worker: worker["name"], all_python_devs)) print("Reto High Order Function all_python_devs") for worker in all_python_devs: print(worker)

    RETO HIGH ORDER FUNCTION "all_Platzi_workers"

    all_Platzi_workers = list(filter(lambda worker: worker["organization"] == "Platzi", DATA)) all_Platzi_workers = list(map(lambda worker: worker["name"], all_Platzi_workers)) print("Reto High Order Function all_platzi_workers") for worker in all_Platzi_workers: print(worker)

    RETO LIST COMPREHENSIONS - ADULTS

    adults = [worker["name"] for worker in DATA if worker["age"] > 18] print("Reto list comprehension Adults") for worker in adults: print(worker)

    RETO LIST COMPREHENSIONS - OLD PEOPLE

    old_people = [worker | {"old": worker["age"] > 70} for worker in DATA] print("Reto list comprehension Old_people") for worker in old_people: print(worker)
      Anderson Eduardo Arévalo Ramírez

      Anderson Eduardo Arévalo Ramírez

      student•
      hace 3 años

      Muy parecido a como mi bro lo planteo, nice

    Diego Armando Henao Rodríguez

    Diego Armando Henao Rodríguez

    student•
    hace 5 años

    Hola compañeros una ayuda por favor, porque me sale el siguiente error:

    TypeError: unsupported operand type(s) for |: 'dict' and 'dict'

    Mi código es el siguiente:

    def run(): all_python_devs = [worker["name"] for worker in DATA if worker["language"] == "python"] adults = list(filter(lambda worker: worker["age"] > 18, DATA)) adults = list(map(lambda worker: worker["name"], adults))

    # Agregar un diccionario al diccionario exitente con pipe | old_people = list(map(lambda worker: worker | {"old": worker["age"] > 70}, DATA)) for worker in all_python_devs: print(worker) for worker in adults: print(worker) for worker in old_people: print(worker)

    if name == 'main': run()

      Jacobo Ceballos

      Jacobo Ceballos

      student•
      hace 5 años

      El error lo está mostrando con el simbolo " | ", verdad? Facundo dijo en la clase que es un operador implementado en la versión de Python 3.9. Tal vez verificando la versión pueda solucionar el problema.

      Diego Armando Henao Rodríguez

      Diego Armando Henao Rodríguez

      student•
      hace 5 años

      Si, el problema es con el operador " | ", tengo actualmente la versión 3.8.5, entonces para versiones anteriores a 3.9, cómo se haría la adición al diccionario o no se podría?

    Christian Alvarenga

    Christian Alvarenga

    student•
    hace 5 años

    En la parte del primer high order function, en vez de poner solo print (worker) se puede poner print (worker ['name']) y con eso te tira solo los nombres de los mayores de edad.

      Darwin Andres Benavides Miranda

      Darwin Andres Benavides Miranda

      student•
      hace 5 años

      Esta idea que propones en efecto imprime los nombres de los mayores de edad, pero ojo el diccionario resultante y guardado sí que contiene todos los campos, entonces hay que tener en cuenta si ese era el resultado final que esperabas.

      Christian Alvarenga

      Christian Alvarenga

      student•
      hace 5 años

      Buen punto, gracias. :)

    Fabricio Escalante Pérez

    Fabricio Escalante Pérez

    student•
    hace 5 años
    def challenge(): all_python_devs = list(map(lambda worker: worker['name'], list(filter(lambda worker: worker['language'] == 'python', DATA)))) all_platzi_workers = list(map(lambda worker: worker['name'], list(filter(lambda worker: worker['organization'] == 'Platzi', DATA)))) adults = [worker['name'] for worker in DATA if worker['age'] > 18] old_people = [{**worker, **{'old': worker['age'] > 70}} for worker in DATA]
      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      Buen aporte.

    Santiago Valencia Valencia

    Santiago Valencia Valencia

    student•
    hace 5 años
    Reto_chapter13.png
    Usuario anónimo

    Usuario anónimo

    user•
    hace 4 años

    👾 Completando la solución del filtrado de datos, usando filter, map y list comprehensions.

    DATA = [ { 'name': 'Facundo', 'age': 72, 'organization': 'Platzi', 'position': 'Technical Coach', 'language': 'python', }, { 'name': 'Luisana', 'age': 33, 'organization': 'Globant', 'position': 'UX Designer', 'language': 'javascript', }, { 'name': 'Héctor', 'age': 19, 'organization': 'Platzi', 'position': 'Associate', 'language': 'ruby', }, { 'name': 'Gabriel', 'age': 20, 'organization': 'Platzi', 'position': 'Associate', 'language': 'javascript', }, { 'name': 'Isabella', 'age': 30, 'organization': 'Platzi', 'position': 'QA Manager', 'language': 'java', }, { 'name': 'Karo', 'age': 23, 'organization': 'Everis', 'position': 'Backend Developer', 'language': 'python', }, { 'name': 'Ariel', 'age': 32, 'organization': 'Rappi', 'position': 'Support', 'language': '', }, { 'name': 'Juan', 'age': 17, 'organization': '', 'position': 'Student', 'language': 'go', }, { 'name': 'Pablo', 'age': 32, 'organization': 'Master', 'position': 'Human Resources Manager', 'language': 'python', }, { 'name': 'Lorena', 'age': 56, 'organization': 'Python Organization', 'position': 'Language Maker', 'language': 'python', }, ] def run(): all_python_devs = list(filter(lambda worker: worker["language"] == "python", DATA)) all_python_devs = list(map(lambda worker: worker["name"], all_python_devs)) all_Platzi_workers = list(filter(lambda worker: worker["organization"] == "Platzi", DATA)) all_Platzi_workers = list(map(lambda worker: worker["name"], all_Platzi_workers)) old_people = list(filter(lambda worker: worker["age"] > 50, DATA)) old_people = list(map(lambda worker: worker["name"], old_people)) adults = list(filter(lambda worker: worker["age"] > 18, DATA)) adults = list(map(lambda worker: worker["name"], adults)) print("- Python Developers -") for worker in all_python_devs: print(worker) print("\n- Platzi Workers -") for worker in all_Platzi_workers: print(worker) print("\n- Holds -") for people in old_people: print(people) print("\n- Adults -") for adult in adults: print(adult) if __name__ == '__main__': run()

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads