Curso Avanzado de Desarrollo en Python
Capítulo
>
Nivel
Listas Avanzadas
Ordenando Conjuntos
Objetivo
Organiza y cocina una comida usando Sets para ordenar y componer los ingredientes.
Sería una buena idea empezar a preparar algo de comida, hay algunos ingredientes en el frigorífico, todos envueltos, así como algunas hierbas que podrías usar para dar sabor al plato. Todos los materiales están almacenados en listas, por lo que sería una buena idea usar Sets para consolidar los elementos y aprovechar al máximo tu cocina.
Hay tres (3) constantes de lista, dos (2) son carnes, llamadas: pack1 y pack2, y una (1) es materiales de cocina, llamada ingredients. Dirígete a la marca X oscura sobre la alfombra naranja y enfrenta el frigorífico, usa la función collect() para recoger pack1 y pack2 del frigorífico, de esta manera: player.collect(pack1).
Una vez que las carnes hayan sido recogidas, dirígete a la marca X clara y enfrenta la tabla de cortar, aquí verificaremos el contenido de los paquetes utilizando la función speak() con ambas constantes de lista que recogiste. A partir de aquí consolidaremos los elementos usando Sets como en el nivel anterior. Crea dos Sets llamados set1 y set2, y utilizando la función set() asigna pack1 y pack2 a ellos, por ejemplo: set1 = set(pack1).
Una vez que las listas se hayan consolidado en Sets, es hora de ordenar y subdividir los elementos en Sets más pequeños para mayor comodidad.
El primer método para lograr esto se llama systemic_difference, que nos permitirá separar los elementos que no se comparten entre cada Set. Crea un Set llamado unique y utiliza los dos Sets para comparar e identificar los elementos únicos usando systemic_difference, de esta manera: unique = set1.symmetric_difference(set2). Usa el método speak() con el Set que creaste para confirmar el contenido del set.
Continúa con el ordenamiento creando un Set llamado shared y utiliza el método intersection aprendido en el nivel anterior para identificar los elementos que se encuentran en ambos Sets. Utiliza los dos Sets para comparar e identificar los elementos, de esta manera: shared = set1.intersection(set2). Usa el método speak() con el Set que creaste para confirmar el contenido del set.
Finalmente, utiliza un método llamado difference, que nos permitirá separar los elementos que se encuentran únicamente en un Set y no en el otro. Crea dos (2) Sets llamados meat1 y meat2, utiliza los dos Sets originales para comparar e identificar los elementos usando difference, de esta manera: meat1 = set1.difference(set2) y meat2 = set2.difference(set1). Usa el método speak() con ambos Sets de carne que creaste para confirmar el contenido de cada set.
Con esto, las carnes han sido clasificadas, dirígete a la marca X oscura sobre la alfombra azul, enfrenta el frigorífico y utiliza la función place() para almacenar el Set shared que creaste, de esta manera: player.place(shared). Con esto guardarás los ingredientes que no vas a cocinar.
Dirígete a la marca X dorada, enfrenta el armario y utiliza la función collect() para adquirir la última constante de lista llamada ingredients y utiliza la función speak() para confirmar su contenido.
Transfiere los elementos de ingredients a un nuevo Set llamado set3. Ahora que tienes todos los ingredientes, crea dos Sets, llamados meal1 y meal2, utilizando el método union para combinar todos los elementos necesarios para cocinar.
Para meal1, combina set3 y meat1 de esta manera, meal1 = set3.union(meat1). Dirígete a la marca X oscura sobre la alfombra morada y, con el Set meal1, utiliza la función speak() para confirmar el contenido y la función place() para cocinar el plato en la olla.
Para meal2 haz lo mismo, pero en su lugar utiliza el método union con set3 y meat2. Dirígete a la marca X oscura sobre la alfombra amarilla y enfrenta la olla, utiliza las funciones speak() y place() con meal2 para completar el nivel.