¡Te damos la bienvenida a este reto!

1

Empezando con Python desde 0

Día 1

2

Variables, funciones y sintaxis básica

3

Tipos de datos: Numbers, Strings y Diccionarios

4

Playground - Retorna el tipo

Día 2

5

Operadores

6

Playground - Calcula la propina

Día 3

7

Condicionales

8

Playground - Averigua si un año es bisiesto

9

Ciclos

10

Playground - Dibuja un triangulo usando bucles

Día 4

11

Listas

12

Encuentra a los gatitos más famosos

13

Diccionarios

14

Obtén el promedio de los estudiantes

15

Tuplas

16

Obten la información de los paquetes

Día 5

17

Calcula la cantidad de letras en una oración

18

Encuentra el mayor palíndromo

Día 6

19

Sets

20

Encuentre la intersección de conjuntos

Día 7

21

List comprehension

22

Encuentra palabras con dos vocales

23

Dictionary Comprehension

24

Calcula la longitud de las palabras

Día 8

25

Funciones Lambda

26

Filtra mensajes de un user específico

27

Higher order functions

28

Crea tu propio método map

Día 9

29

Manejo de Errores y excepciones

30

Maneja correctamente los errores

31

Maneja las excepciones

Día 10

32

Playground - Crea un task manager usando closures

Día 11

33

Lectura de archivos de texto y CSV

Día 12

34

Programación orientada a objetos

35

Crea un auto usando clases

Día 13

36

Abstracción en Python

37

Playground - Crea un sistema de carrito de compras

38

Encapsulamiento en Python

39

Playground - Encapsula datos de los usuarios

Día 14

40

Herencia en Python

41

Playground - Jerarquía de animales usando herencia

Día 15

42

Polimorfismo en Python

43

Playground - Implementa un sistema de pagos

Día 16

44

Estructuras de datos en Python

45

Playground - Crea tu propia lista en python

46

Hash tables en Python

47

Playground - Implementación de una HashTable para Contactos

Día 17

48

Maps en Python

49

Playground - Crea un task manager con Maps

Día 18

50

Singly Linked List en Python

51

Playground - Implementación de una singly linked list

Día 19

52

Stacks en Python

53

Playground - Implementación de un stack

Día 20

54

Queues en Python

55

Playground - Implementación de una queue

Día 21

56

¡Lo lograste!

No tienes acceso a esta clase

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

Playground - Crea un task manager con Maps

49/56

Aportes 20

Preguntas 0

Ordenar por:

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

Solución 😄…
.

.
.
.
.

class TaskManager:
  def __init__(self):
    self.tasks = {}

  def addTask(self, task, tags):
    task = task.lower()
    self.tasks[task] = self.tasks.get(task, set()) | set(tags)

  def printTasks(self):
    return self.tasks
class TaskManager:
  def __init__(self):
    self.tasks_list = {}

  def addTask(self, task, tags):
    if task in self.tasks_list:
      self.tasks_list[str(task).lower()].update(set(tags))
      return
    self.tasks_list[str(task).lower()] = set(tags)

  def printTasks(self):
    return self.tasks_list
![](https://static.platzi.com/media/user_upload/taskManager-6c7b4a96-655e-4d2f-a372-ffe4a03b71dd.jpg)

Mi aporte

class TaskManager:
  def __init__(self):
    self.tasks = {}

  def addTask(self, task, tags):
    task_lower = task.lower()
    tags = set(tags)
    if task_lower in self.tasks:
      self.tasks[task_lower].update(tags)
    else:
      self.tasks[task_lower] = tags

  def printTasks(self):
    return self.tasks

Mi aporte
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

class TaskManager:
  def __init__(self):
    # Tu código aquí 👈
    self.tasks = {}
    pass

  def addTask(self, task, tags):
    # Tu código aquí 👈
    if task.lower() in self.tasks:
      for tag in tags:
        self.tasks.get(task.lower()).add(tag)
    else:
      self.tasks[task.lower()] = set(tags)
    pass

  def printTasks(self):
    # Tu código aquí 👈
    print(self.tasks)
    return self.tasks
    pass

🛡️🛡️Escudo anti-spoilers🛡️🛡️

Mi solución al reto:

class TaskManager:
  def __init__(self):
    self.tasks = {}

  def addTask(self, task, tags):
    t = task.lower()
    self.tasks[t] = self.tasks.get(t, set()).union(set(tags))
    # tambien se puede usar el operador | en vez de union 
    # self.tasks[t] = self.tasks.get(t, set()) | set(tags)

  def printTasks(self):
    return self.tasks


.
.
.
.
.
.
.
.
.
.

Mi código:

class TaskManager:
    def __init__(self):
        self.tasks = {}

    def addTask(self, task, tags):
        self.tasks.setdefault(task.lower(), set()).update(tags)

    def printTasks(self):
        return self.tasks

class TaskManager:
  def __init__(self):
    self.tasks = {}

  def addTask(self, task, tags):
    task = task.lower()
    if task not in self.tasks:
      self.tasks[task] = tags
    else:
       self.tasks[task] = set(self.tasks[task]) | set(tags)

  def printTasks(self):
    return self.tasks

Interesante otro concepto más para dictionaries que no conocía.

Les comparto mi aporte

class TaskManager:
  def __init__(self):
    self.task = {}

  def addTask(self, task, tags):
    task = task.lower()
    self.task[task] = self.task.get(task, set()).union(set(tags))

  def printTasks(self):
    return self.task

.
.
.
.
.
.
.
.
.
.
.
.
.
Mi codigo

class TaskManager:
  def __init__(self):
    self.tasks = {}
    
  def addTask(self, task, tags):
    taskIndex = task.lower()
    if taskIndex in self.tasks:
      self.tasks[taskIndex].update(tags)
    else:
      self.tasks[taskIndex] = set(tags)

  def printTasks(self):
    return self.tasks

Mi solución 💻 🐍


.
.
.
.
.

class TaskManager:
  def __init__(self):
    self.tasks = {}

  def addTask(self, task, tags):
    lower_task = task.lower() # Variable aux para no mutar el valor del parámetro task.

    if not lower_task in self.tasks:
      self.tasks[lower_task] = set()

    self.tasks[lower_task].update(tags)

  def printTasks(self):
    print(self.tasks)
class TaskManager:
    def __init__(self):
        self.tasks = {}

    def addTask(self, task, tags):
        task_lower = task.lower()
        if task_lower in self.tasks:
            self.tasks[task_lower] = self.tasks[task_lower].union(tags)
        else:
            self.tasks[task_lower] = set(tags)

    def printTasks(self):
        return self.tasks

class TaskManager:
  def __init__(self):
    self.map = {}

  def addTask(self, task, tags):
    if task.lower() in self.map:
        self.map[task.lower()] = set(self.map[task.lower()]).union(set (tags))
    else:
        self.map[task.lower()] = set(tags)

  def printTasks(self):
    return self.map

test_add_task

test_add_tags_to_existing_task

test_convert_task_to_lowercase

test_print_tasks

test_add_new_task_to_task_manager

test_not_repeat_tags_to_existing_task

test_return_map_containing_all_tasks

¡Felicidades, todas las pruebas pasaron!
myTaskManager = TaskManager()
myTaskManager.addTask("Comprar leche", ["compras", "urgente"])
myTaskManager.addTask("Sacar al perro", ["mascotas"])
myTaskManager.addTask("Hacer ejercicio", ["salud"])

print(myTaskManager.printTasks())

Mi solución
+
+
+
+
+
+
+
+
+
+

class TaskManager:
  def __init__(self):
    # Tu código aquí 👈
    self.tasks ={}
   

  def addTask(self, task, tags):
    # Tu código aquí 👈
    if task.lower() in self.tasks:
      newTasks= set(self.tasks[task.lower()]) | set(tags)
      self.tasks[task.lower()]=newTasks
    else:
      self.tasks[task.lower()]=set(tags)

  def printTasks(self):
    # Tu código aquí 👈
    return self.tasks

o
o
o
o
o
o

class TaskManager:
  def __init__(self):
    self.mapita = {}

  def addTask(self, task, tags):
    tarea = task.lower()
    if tarea in self.mapita:
      for element in tags:
        self.mapita[tarea].add(element)
    else:  
      self.mapita[tarea] = set(tags)
    
  
  def printTasks(self):
    return self.mapita
    
myTaskManager = TaskManager()
myTaskManager.addTask("Comprar leche", ["compras", "urgente"])
myTaskManager.addTask("Sacar al perro", ["mascotas"])
myTaskManager.addTask("Hacer ejercicio", ["salud"])
myTaskManager.addTask("Comprar leche", ["lacteos"])

print(myTaskManager.printTasks())  


.
.
.
.
.


.
.
.
.
.

class TaskManager:

  def __init__(self):
    self._task_manager = {}

  def addTask(self, task, tags):
    key = task.lower()
    set_tags = set(tags)
    if key in self._task_manager:
      self._task_manager[key] = self._task_manager[key].union(set_tags)
    else:
      self._task_manager[key] = set_tags

  def printTasks(self):
    return self._task_manager
undefined