CursosEmpresasBlogLiveConfPrecios

High order functions: filter, map y reduce

Clase 11 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
    Samuel Alvarez

    Samuel Alvarez

    student•
    hace 5 años

    Facundo: Estoy seguro de que no caen 2 veces yo: caigo Facundo:

    hola

      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      hahaha

      Victor

      Victor

      student•
      hace 5 años

      JAJAJAJAJAJJAA

    Nicolas Barragan

    Nicolas Barragan

    student•
    hace 5 años

    La diferencia entre filter y map:

    • filter devuelve True or False según el valor esté dentro de los criterios buscados o no. En caso de que no cumpla con la condición, no será devuelto y la lista se verá reducida por este filtro.
    • Map funciona muy parecido, pero su diferencia radica en que no puede eliminar valores de la lista del array entregado. Es decir, el output tiene la misma cantidad de valores que el input.

    Cómo funciona reduce:

    • Reduce toma 2 valores entregados como parámetros y el iterador como otro parámetro. Realiza la función con estos 2 valores, y luego con el resultado de esto y el valor que le sigue en el array. Y así hasta pasar por todos los valores de la lista.
      Alan German Gutiérrez

      Alan German Gutiérrez

      student•
      hace 5 años

      Excelente, había entendido el funcionamiento en el código pero no tenía muy en claro las diferencias!.

      Gracias.

      Valenttina Cardozo

      Valenttina Cardozo

      student•
      hace 5 años

      No me había quedado clara la diferencia ente filter y map. Gracias!

    Daniela Funes

    Daniela Funes

    student•
    hace 5 años
    qu-queremos-curso-de-python-avanzado.jpg
    y-cundo-lo-queremos-sh.jpg
      Reinaldo Mendoza

      Reinaldo Mendoza

      student•
      hace 5 años

      jajajaja

      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      haha

    Josue Noha Valdivia

    Josue Noha Valdivia

    student•
    hace 5 años

    High order funcions O funciones de orden superior, son funciones que reciben como parámetro a otra función. Funciones de orden superior de importancia:

    • filter → recibe una función filtro (anónima) y un iterable (lista, tupla, etc) devolviendonos un iterador: objeto optimizado recorrer elemento a elemento (iterar) por lo que no lo podemos inprimir de manera directa (para ello lo convertimos a una lista), su sintaxis es: filter(<funcion filtro>, <iterable>)
    • map → al igual que filter recibe una función anónima y un iterable como parámetros pero en este caso map ejecuta la función sobre cada uno de los elementos del iterable, sintaxis: map(<funcion>, <iterable>)
    • reduce → tenemos que importar esta función desde functools para poder usarla, tiene los mismos argumentos que las anteriores funciones, reduce el iterable por medio de la función anonima, su sintaxis es: reduce(<funcion reduccion>, <iterable>), la función de reducción necesita de dos parámetros, uno que almacena el resultado (o el primer valor del iterable) y otro que opera con el siguiente valor del iterable: lambda a,b: <expresión>
      Andrés Cardona

      Andrés Cardona

      student•
      hace 5 años

      Gracias por el resúmen!! Muy útil.

      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      Thanks,

    Leonardo Gomez

    Leonardo Gomez

    student•
    hace 5 años

    Cuando te dicen que no caes 2 veces

      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      haha.

      Beder Danilo Casa Condori

      Beder Danilo Casa Condori

      student•
      hace 3 años

      jajaja

    Luis Alejandro Nieto Ruth

    Luis Alejandro Nieto Ruth

    student•
    hace 5 años

    Acá le dejo el código de la clase para poder practicar y entender:

    from functools import reduce def main(): #Filter myList = [1,4,5,7,9,13,19,21] odd = list(filter(lambda x: x % 2 != 0, myList)) print(odd) #Map myList2 = [1, 2, 3, 4, 5] squares = list(map(lambda x: x**2, myList2)) print(squares) myList3 = [2, 2, 2, 2, 2] allMultiplied = reduce(lambda a, b: a * b, myList3) print(allMultiplied) if __name__ == '__main__': main()
      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      Gracias

      fidel angel ochoa

      fidel angel ochoa

      student•
      hace 4 años

      gracias, directo a mis apuntes!

    Wilson Delgado

    Wilson Delgado

    student•
    hace 4 años

    Es te video puede ser de gran ayuda: https://www.youtube.com/watch?v=hUes6y2b--0

      Diego Alejandro Guancha Naranjo

      Diego Alejandro Guancha Naranjo

      student•
      hace 4 años

      Accurate!

      Karen Johana Perez Miranda

      Karen Johana Perez Miranda

      student•
      hace 4 años

      Excelente recurso Wilson, me ayudó a entender muchísimo el funcionamiento de la función map. Muchas gracias!

    Edkar Chachati

    Edkar Chachati

    student•
    hace 5 años

    High Order Functions

    Funciones que reciben como parámetro otra función

    Filter

    devuelve True or False según el valor esté dentro de los criterios buscados o no. En caso de que no cumpla con la condición, no será devuelto y la lista se verá reducida por este filtro.

    """ Dada una lista de numeros filtra para quedarte solo con los números impares """ my_list = [i for i in range(10)] # Usando def def get_odds(arr): odds = [] for n in arr: if n % 2 == 1: odds.append(n) return odds # Usando List Comprehension odds = [n for n in my_list if n % 2 == 1] # Usando Filter odds_filter = list(filter(lambda n: n % 2 == 1, my_list)) print(odds_filter)

    Map

    Funciona muy parecido, pero su diferencia radica en que no puede eliminar valores de la lista del array entregado. Es decir, el output tiene la misma cantidad de valores que el input.

    """ Obtener todos los numeros de una lista multiplicados al cuadrado """ # Usando Def def get_squares(arr): squares = [] for n in arr: squares.append(n * n) return squares # Usando List Comprehension squares = [n * n for n in my_list] # Usando Map squares_map = list(map(lambda x: x*x, my_list)) print(squares_map)

    Reduce

    Toma 2 valores entregados como parámetros y el iterador como otro parámetro. Realiza la función con estos 2 valores, y luego con el resultado de esto y el valor que le sigue en el array. Y así hasta pasar por todos los valores de la lista.

    """ Suma todos los valores de una lista """ from functools import reduce # Usando def def get_sum(arr): result = 0 for n inarr: result += n return result # Usando Reduce sum = reduce(lambda a, b: a + b, my_list) print(sum)
    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/10d2c4fe-7678-4aae-b5ad-08ef3937df25/Untitled.png
    Kevin Mejia

    Kevin Mejia

    student•
    hace 4 años

    Cuando vuelves a caer por segunda vez, pero te das cuenta que fue una broma. 😅

    descarga.jpg

      Juan Antonio Aramburo Pasapera

      Juan Antonio Aramburo Pasapera

      student•
      hace 4 años

      En mi defensa el curso anterior tiene varios meses que lo hice XD

      César Valentín Cobos Clemente

      César Valentín Cobos Clemente

      student•
      hace 4 años

      También en mi defensa diré estaba distraído con mi café 🤣

    Gabriel Revelo

    Gabriel Revelo

    student•
    hace 4 años

    si completaste el curso basico de python lo tienes que entender sin problema

    1626792085551.jpg

      Fabian Julio

      Fabian Julio

      student•
      hace 4 años

      jajajjajajaj

      Ruben Dario Hernandez Centeno

      Ruben Dario Hernandez Centeno

      student•
      hace 4 años

      Jajajajajajaja

    Simon Montoya Bedoya

    Simon Montoya Bedoya

    student•
    hace 5 años

    En términos de desempeño del código. ¿Qué es más recomendable entre lists comprehensions y la función map?

      Andres Condezo Monge

      Andres Condezo Monge

      student•
      hace 5 años

      Dejo mi punto para recibir la notificación cuando respondan la pregunta .

      Mauricio Gonzalez Falcon

      Mauricio Gonzalez Falcon

      student•
      hace 4 años

      Yo diría que es a nuestro gusto, porque también podemos pensar el zen de python, que sí este código es más corto pero menos legible.

      Al final depende de nuestro criterio, saludos

    Víctor Moreno Marín

    Víctor Moreno Marín

    student•
    hace 5 años

    Apuntes clase 12

    IMG_20210514_223102.png
      Marwan El Ouarti Mellado

      Marwan El Ouarti Mellado

      student•
      hace 3 años
      unnamed-44d3e4ab-69fd-4ba8-882b-0d52cc4a483c.png
    Antonio Demarco Bonino

    Antonio Demarco Bonino

    student•
    hace 5 años

    Este curso se pone cada vez más bueno...

      Jose Luis Quintero Sanchez

      Jose Luis Quintero Sanchez

      student•
      hace 5 años

      ...y sube el nivel de dificultad..

      Reinaldo Mendoza

      Reinaldo Mendoza

      student•
      hace 5 años

      Muy bien explicado y enlazando los temas para que se queden en la memoria

    Julio Sarango

    Julio Sarango

    student•
    hace 5 años

    Alguien más revisó la duración del video cuando dijo: Nos vemos en la siguiente clase ??? jajaj

      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      No caí haha

    Jose Luis Quintero Sanchez

    Jose Luis Quintero Sanchez

    student•
    hace 5 años

    Desafío inicial,

    print([i**2 for i in range(1, 6)])
      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      Cool. Muy limpio

      Nestor Jesus Rodriguez Rodriguez

      Nestor Jesus Rodriguez Rodriguez

      student•
      hace 4 años

      wow, no sabía que esto se podía hacer... ya lo hice también y lo disfruté con una deliciosa taza de café :)

    Carlos Fernando Aguilar González

    Carlos Fernando Aguilar González

    student•
    hace 5 años

    Filter:

    filter.PNG

    Map:

    map.PNG

    Reduce:

    reduce.PNG
      Gonzalo Hernan Velazco

      Gonzalo Hernan Velazco

      student•
      hace 4 años

      Gracias, muy útil para quienes tomamos apuntes solamente en PC.

    Wilson Fernando Antury Torres

    Wilson Fernando Antury Torres

    student•
    hace 5 años
    • Usar filter en lugar de list comprehension mejora el rendimiento en memoria y computo.
    • A medida que la función de filtrado se va haciendo más compleja, será necesario usar funciones regulares en lugar de lambda functions, por cuestiones de legibilidad.
    • Fuente: https://www.digitalocean.com/community/tutorials/how-to-use-the-python-filter-function-es
    Jorge Méndez Ortega

    Jorge Méndez Ortega

    student•
    hace 5 años

    Esto es como un callback?

      Sergio Ivan Santacruz Madrigal

      Sergio Ivan Santacruz Madrigal

      student•
      hace 5 años

      Si

    Jeiber Ignacio Jimenez Bojaca

    Jeiber Ignacio Jimenez Bojaca

    student•
    hace 5 años

    Por si nos les quedo claro las diferencias entre filter, map y reduce. Ayuda a comprender mas a fondo https://taverasmisael.com/blog/usar-map-filter-y-reduce-para-olvidarnos-de-los-bucles-for#:~:text=A%20diferencia%20de%20filter%2C%20map,de%20la%20transformaci%C3%B3n%20que%20apliquemos.&text=A%20map%20le%20pasamos%20una,sin%20afectar%20el%20array%20original.

      Andres López

      Andres López

      student•
      hace 5 años

      Gracias por el artículo, me sirvió mucho a pesar de que es originalmente para JS, pero los principios aplican igual para Python

    Fernando Campos

    Fernando Campos

    student•
    hace 5 años

    Entendí como usarlas, lo que no me quedó claro es el por qué. ¿Cuál es la diferencia entre usar una de estas funciones y solucionar el problemar sin ellas?

      Mauricio Fernando Bautista López

      Mauricio Fernando Bautista López

      student•
      hace 5 años

      Hola, quizá aquí no se ve tanto su utilidad por que de entrada estamos trabajando con casos muestra súper chicos, pero teniendo objetos mucho mas grandes se puede ver la diferencial ya que performea mucho mejor en tiempo otro ejemplo es cuando por ejemplo quieres crear mascaras en un reporte... un ejemplo mas especifico es cuando quieres programar un reporte que tiene que ver con dinero. para que puedas poner el símbolo $ usas map para que los reportes se puedan identificar como moneda. espero haya sido de utilidad saludos

      Fernando Campos

      Fernando Campos

      student•
      hace 5 años

      Gracias, Mauricio.

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