CursosEmpresasBlogLiveConfPrecios

Eliminando los repetidos de una lista

Clase 18 de 21 • Curso Profesional de Python

Clase anteriorSiguiente clase

Contenido del curso

Introducción

  • 1
    ¿Qué necesitas saber para tomar el curso?

    ¿Qué necesitas saber para tomar el curso?

    03:15 min
  • 2
    ¿Cómo funciona Python?

    ¿Cómo funciona Python?

    07:49 min
  • 3
    Cómo organizar las carpetas de tus proyectos

    Cómo organizar las carpetas de tus proyectos

    07:15 min

Static Typing

  • 4
    ¿Qué son los tipados?

    ¿Qué son los tipados?

    10:26 min
  • 5
    Tipado estático en Python

    Tipado estático en Python

    14:26 min
  • 6
    Practicando el tipado estático

    Practicando el tipado estático

    13:33 min

Conceptos avanzados de funciones

  • 7
    Scope: alcance de las variables

    Scope: alcance de las variables

    06:32 min
  • 8
    Closures

    Closures

    08:21 min
  • 9
    Programando closures

    Programando closures

    07:00 min
  • 10
    Decoradores

    Decoradores

    06:19 min
  • 11
    Programando decoradores

    Programando decoradores

    13:05 min

Estructuras de datos avanzadas

  • 12
    Iteradores

    Iteradores

    13:52 min
  • 13
    La sucesión de Fibonacci

    La sucesión de Fibonacci

    14:01 min
  • 14
    Generadores

    Generadores

    07:22 min
  • 15
    Mejorando nuestra sucesión de Fibonacci

    Mejorando nuestra sucesión de Fibonacci

    06:53 min
  • 16
    Sets

    Sets

    10:58 min
  • 17
    Operaciones con sets

    Operaciones con sets

    06:09 min
  • 18
    Eliminando los repetidos de una lista

    Eliminando los repetidos de una lista

    Viendo ahora

Bonus

  • 19
    Manejo de fechas

    Manejo de fechas

    08:44 min
  • 20
    Time zones

    Time zones

    08:46 min

Conclusión

  • 21
    Completaste la trilogía. ¿Cómo seguir?

    Completaste la trilogía. ¿Cómo seguir?

    01:30 min
  • Tomar el examen del curso
    • Ernesto Crespo

      Ernesto Crespo

      student•
      hace 4 años

      def removerduplicados(lista): return list(set(lista))

        Reinaldo Mendoza

        Reinaldo Mendoza

        student•
        hace 4 años

        Yo pensaba por que una clase para una linea de codigo, ya lo tenia en mi cabeza desde que vi el titulo

        Joel Angel David Barrantes Palacios

        Joel Angel David Barrantes Palacios

        student•
        hace 4 años

        hermano :-), a mi tambien se me ocurrio. realmente es la manera mas simple. que viva el platzi day!!!

      Freddy William Martinez Cuzco

      Freddy William Martinez Cuzco

      student•
      hace 4 años

      Reto:

      def del_duplicates(random_list): return list(set(random_list)) def main(): random_list = [ 11, 55, 2, 2, 55] print(del_duplicates(random_list)) if __name__ == '__main__': main()
        Pablo Andrés Jarava Guerra

        Pablo Andrés Jarava Guerra

        student•
        hace 4 años

        Qué golazo

        Luis Alejandro Vera Hernandez

        Luis Alejandro Vera Hernandez

        student•
        hace 4 años

        Increible... :o

      Sebastian Granda Gallego

      Sebastian Granda Gallego

      student•
      hace 4 años
      remove_duplicate = lambda some_list: list(set(some_list))
        Rodrigo Lopez Rosales

        Rodrigo Lopez Rosales

        student•
        hace 4 años

        creo que el lamba viene un poco de mas

        Diego Frank Lipa Choque

        Diego Frank Lipa Choque

        student•
        hace 3 años
        def remove_duplicates(random_list): no_duplicates = [] for element in random_list: if element not in no_duplicates: no_duplicates.append(element) return no_duplicates def sets(random_list): return list(set(random_list)) def main(): random_list = [1, 2, 1, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5] print(set(random_list)) print(remove_duplicates(random_list)) if __name__ == '__main__': main()
      Andrés Villarreal

      Andrés Villarreal

      student•
      hace 4 años

      El código es bastante más sencillo con sets. Además quise averiguar si había alguna diferencia computacional en hacerlo por los dos métodos pero me di cuenta de que no haciendo el experimento.

      Para una lista de 10 millones de elementos se demora prácticamente lo mismo: 0,73 segundos. En este sentido pensaría que la diferencia entre los dos métodos sería la sintaxis únicamente.

      import random from datetime import datetime def execution_time(func): def wrapper(*args, **kwargs): initial_time = datetime.now() func(*args, **kwargs) final_time = datetime.now() time_elapsed = final_time - initial_time print ('Pasaron ' + str(time_elapsed.total_seconds()) + ' segundos') return wrapper @execution_time def remove_duplicates(some_list): without_duplicates = [] for element in some_list: if element not in without_duplicates: without_duplicates.append(element) print('Lista sin duplicados: ', without_duplicates) @execution_time def remove_set(some_list): without_duplicates = set(some_list) print('Lista sin duplicados: ', without_duplicates) def run(): random_list = [random.randint(1,10) for _ in range(10000000)] remove_duplicates(random_list) print('\nResultado con sets:') remove_duplicates(random_list) if __name__ == '__main__': run()
        Cesar Hernández Ramírez

        Cesar Hernández Ramírez

        student•
        hace 4 años

        Tardan exactamente lo mismo porque son básicamente lo mismo, al utilizar la función set() estamos haciendo lo mismo que cuando utilizamos la sintaxis más amplia. Utilizar set() sería como la sugar sintaxis de los sets 👍

        Wilder Bravo

        Wilder Bravo

        student•
        hace 4 años

        Existe un concepto que se llama “Complejidad algorítmica” que te permite determinar la eficiencia de un algoritmo más allá del tiempo de ejecución. Por si interesa profundizar dejo un enlace: https://www.cs.us.es/~jalonso/cursos/i1m-19/temas/tema-28.html

      Yeison Stiven Sanz Castro

      Yeison Stiven Sanz Castro

      student•
      hace 4 años

      No esta el video de esta clase

        Mayra Carolina Morataya Guerra

        Mayra Carolina Morataya Guerra

        student•
        hace 4 años

        Cuando eso te pase prueba cambiar a server B o C

        Alfredo Napoleón Noboa Cárdenas

        Alfredo Napoleón Noboa Cárdenas

        student•
        hace 4 años

        Pues yo ya probé con todos los servidores y tampoco se me reproduce el video.

      Roberto Andres Viruete Gonzalez

      Roberto Andres Viruete Gonzalez

      student•
      hace 4 años

      facil , queremos retos mas dificiles como el juego del ahorcado para practicar, ese nivel de dificultad para arriba por favor

      a = [1,1,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5] a = list( set(a) )
        José Rodrigo Navas Maldonado

        José Rodrigo Navas Maldonado

        student•
        hace 4 años

        Puedes hacerlo para practicar aunque no lo haya dicho el profe, no es necesario que te quedes solo con los retos de la clase. Saludos

        Roberto Andres Viruete Gonzalez

        Roberto Andres Viruete Gonzalez

        student•
        hace 4 años

        wtf no te entiendo, claro que puedo hacer cosas sin que el profesor lo diga para practicar a lo que me refiero es que se agradeceria que pusiera retos interesantes y complicados para tener mas opciones de donde practicar

      Andres Robles

      Andres Robles

      student•
      hace 4 años

      Esta es mi soluccion le agregue una validacion para que me elimine los string que son iguales por significado pero que estan escritos con mayusculas.

      def delete_duplicated(some_list): new_list = [] for item in some_list: if type(item) == str: new_list.append(item.lower()) else: new_list.append(item) return set(new_list) def run(): my_list = ["Perro", "perro", 12, 12, 4, 5, "Hola"] print(delete_duplicated(my_list)) if __name__ == "__main__": run()
        fidel angel ochoa

        fidel angel ochoa

        student•
        hace 4 años

        excelente aporte!! muy util, ahora le pude agregar que eliminara espacios y tildes. GRACIAS!

        new_list.append(unicodedata.normalize('NFKD', item).strip().lower())```
      Luis C.

      Luis C.

      student•
      hace 4 años

      la clase 18 no carga

        Carlos Eduardo Gomez García

        Carlos Eduardo Gomez García

        teacher•
        hace 4 años

        ¡Hola! ¿Has intentado cambiando de servidor? En los controles del reproductor hay un icono de engranaje, ahí puedes cambiar de servidor, muchas veces esto resuelve este problema :D

      Francisco Moreno

      Francisco Moreno

      student•
      hace 4 años

      Esto puede quedar mejor y no tan largo, pero es mejor explicado paso a paso para algunos. Dejo mi aporte. :)

      < def delete_repeated_items(some_list): list_converted = set(some_list) new_list = [] for element in list_converted: new_list.append(element) return new_list if __name__ == '__main__': the_list = [0, 0, 1, 2, 3, 3, 4, 5, 6, 7, 7] print(delete_repeated_items(the_list)) # return; must be [0, 1, 2, 3, 4, 5, 6, 7] >
        Cesar Hernández Ramírez

        Cesar Hernández Ramírez

        student•
        hace 4 años

        Muy buena bro, de esa manera podrías ahorrarte el for loop casteando directamente tu variable list_converted con list(list_converted) y ya nomás la retornaríamos 👍

      DIEGO CAJAVILCA SANDOVAL

      DIEGO CAJAVILCA SANDOVAL

      student•
      hace 4 años

      no me carga el video, y tampoco me sale el engranaje de cambio de servidor por favor ayuda, si me salió por unos segundos pero solo me salió el servidor C único.

      Luis C.

      Luis C.

      student•
      hace 4 años

      The media could not be loaded, either because the server or network failed or because the format is not supported.

      Jose Javier Moreno

      Jose Javier Moreno

      student•
      hace 4 años

      EZ, aunque veo que no soy muy original :)

      def remove_duplicates_with_sets(some_list): return list(set(some_list)) def run(): random_list = [1, 1, 2, 2, 4] print(remove_duplicates_with_sets(random_list)) if __name__ == '__main__': run()
      Jose Noriega

      Jose Noriega

      student•
      hace 4 años

      Reto con notación big O

      def remove_duplicates_v1(source: list): """Removes the duplicated items from the given list. Time Completixy: O(n ^ 2) """ normalized_list: list = [] for item in source: if item not in normalized_list: normalized_list.append(item) return normalized_list def remove_duplicates(source: list): """Removes the duplicated items from the given list. Time complexity: O(n) """ return list(set(source)) def run(): random_list = [1, 1, 2, 2, 4] print(remove_duplicates(random_list)) if __name__ == '__main__': run()
      Luis C.

      Luis C.

      student•
      hace 4 años

      no me carga el video y aparece una X ayudaaa

      Claudio Fernando Abarca Barrera

      Claudio Fernando Abarca Barrera

      student•
      hace 4 años

      A alguien más le pasa que la lista sin duplicados contiene sólo el booleano False en vez de contener también el True? Con este código mi resultado es [False, 1, 2, 3, 4.6, 'Platzi']

      lista_dup = [1, 2, 2, 2, 3, "Platzi", "Platzi", True, 4.6, False] lista_sdup = list(set(lista_dup)) print(lista_sdup)
        Claudio Fernando Abarca Barrera

        Claudio Fernando Abarca Barrera

        student•
        hace 4 años

        Probé con varias combinaciones de tipos y el uso de set(lista) omite elementos que sí son únicos sin ninguna lógica aparente. ¿Alguien tiene alguna explicación? Pareciera ser un bug

        Pablo Antipan Quiñenao

        Pablo Antipan Quiñenao

        student•
        hace 4 años

        Hola Claudio! Se trata por la forma en que python almacena las infomracion en sus estructuras.

        • 1 == True
        • hash(1) == hash(True)

        Considera estos ejemplos:

        print(set({True, 1})) print(set({False, 0}))

        Entonces, cuando defines la lista como en tu caso, para el set considera el primero elemento que aparece, en tu caso el 1. Prueba poner el 1 al final de tu lista, y te considerara el True

        Saludos!

      David Silva Apango

      David Silva Apango

      student•
      hace 4 años

      Este es mi aporte, es un sólo renglón en el que convierto la lista en un set que por definición no tiene duplicados para después convertir el set en una lista y retornarla.

      def remove_duplicates(some_list): return list(set(some_list)) def run(): random_list = [1,1,2,2,4] print(remove_duplicates(random_list)) if __name__ == '__main__': run()
      david roberto urquiza rivera

      david roberto urquiza rivera

      student•
      hace 4 años
      def remove_duplicates(some_list): no_duplicates = [] for element in some_list: if element not in no_duplicates: no_duplicates.append(element) return no_duplicates def sets(some_list): return list(set(some_list)) def run(): random_list = [1, 1, 2, 3, 3, 4, 5, 6, 7, 8, 8, 8, 8, 9] print(remove_duplicates(random_list)) if __name__ == '__main__': run()
      diego andres guzman

      diego andres guzman

      student•
      hace 4 años

      Mi solución

      def remove_duplicate_list(list_to_remove_duplicate:list): return list(set(list_to_remove_duplicate)) def run( ): list_a = [1,2,3,4,5,3,5,4,3,1,5] conversion = remove_duplicate_list(list_a) print (conversion) # imprime [1, 2, 3, 4, 5]
      Antonio Demarco Bonino

      Antonio Demarco Bonino

      student•
      hace 4 años

      Listo el reto:

      def random_set(lists): return list(set(lists)) def run(): random_list = [1, 1, 2, 2, 3, 3, 3, 4, 5, 5, 5, 5, 5, 5, 5, 6] print(random_set(random_list)) if __name__=='__main__': run()
      06.jpg
      Adriana Razo De León

      Adriana Razo De León

      student•
      hace 4 años

      Tal vez era más sencillo o lo que hice no es correcto pero se me hizo fácil, espero retro!!!

      set.png

        Maicol Blanco Alvarez

        Maicol Blanco Alvarez

        student•
        hace 4 años

        Te quedo bien, pero dale un print(type(my_set)) para validar que tipo de dato te retorna y que tipo de dato recibes por parametro, SAludos!!!

        Yair Enrique Riascos Mestre

        Yair Enrique Riascos Mestre

        student•
        hace 4 años

        Faltó usar el método list(), el reto consiste en devolver una lista sin repetidos

    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