Curso Avançado de Desenvolvimento Python
Capítulo
>
Nível
Listas Avançadas
Ordenando Conjuntos
Objetivo
Organize e cozinhe uma refeição utilizando Sets para classificar e compor os ingredientes.
Seria uma boa ideia começar a preparar alguma comida, há alguns ingredientes na geladeira, todos embalados, assim como algumas ervas que você pode usar para dar sabor à refeição. Todos os materiais estão armazenados em listas, então seria uma boa ideia usar Sets para consolidar os itens e aproveitar ao máximo sua culinária.
Existem três (3) constantes de lista, duas (2) são carnes, nomeadas: pack1 e pack2, e uma (1) é de materiais de cozinha, nomeada ingredients. Caminhe até a marca X escura no tapete laranja e vire-se para a geladeira; use a função collect() para agarrar pack1 e pack2 da geladeira, assim: player.collect(pack1).
Depois que a carne for coletada, caminhe até a marca X clara e vire-se para a tábua de corte, aqui vamos verificar o conteúdo dos pacotes usando a função speak() com ambas as constantes de lista que você coletou. A partir daqui, vamos consolidar os itens usando Sets, como no nível anterior. Crie dois Sets chamados set1 e set2, e utilizando a função set() atribua pack1 e pack2 a eles, por exemplo: set1 = set(pack1).
Depois que as listas forem consolidadas em Sets, é hora de classificar e compartimentalizar os itens em Sets menores para conveniência.
O primeiro método para conseguir isso é chamado systemic_difference, o que nos permitirá separar os itens que não são compartilhados entre cada Set. Crie um Set chamado unique e use os dois Sets para comparar e identificar os itens únicos utilizando systemic_difference, assim: unique = set1.symmetric_difference(set2). Use o método speak() com o Set que você criou para confirmar o conteúdo do set.
Em seguida, faça a classificação criando um Set chamado shared e utilize o método intersection, aprendido no nível anterior, para identificar os itens presentes em ambos os Sets. Use os dois Sets para comparar e identificar os itens, assim: shared = set1.intersection(set2). Use o método speak() com o Set que você criou para confirmar o conteúdo do set.
Por fim, utilize um método chamado difference, que nos permitirá separar os itens que são encontrados apenas em um dos Sets e não no outro. Crie dois (2) Sets chamados meat1 e meat2, use os dois Sets originais para comparar e identificar os itens utilizando difference, assim: meat1 = set1.difference(set2) e meat2 = set2.difference(set1). Use o método speak() com ambos os Sets de carne que você criou para confirmar o conteúdo de cada set.
Com isso, as carnes foram classificadas. Caminhe até a marca X escura acima do tapete azul, vire-se para a geladeira e use a função place() para armazenar o Set shared que você criou, assim: player.place(shared). Dessa forma, você guardará os ingredientes que não serão usados para cozinhar.
Caminhe até a marca X dourada, vire-se para o armário e use a função collect() para adquirir a última constante de lista chamada ingredients e use a função speak() para confirmar seu conteúdo. Transfira os elementos de ingredients para um novo Set chamado set3. Agora que você tem todos os ingredientes, crie dois Sets, chamados meal1 e meal2, utilizando o método union para combinar todos os elementos necessários para cozinhar.
Para meal1, combine set3 e meat1 assim: meal1 = set3.union(meat1). Caminhe até a marca X escura sobre o tapete roxo e, com o Set meal1, use a função speak() para confirmar o conteúdo e a função place() para cozinhar a refeição na panela.
Para meal2, faça o mesmo, mas desta vez use o método union com set3 e meat2. Caminhe até a marca X escura sobre o tapete amarelo e vire-se para a panela; use as funções speak() e place() com meal2 para completar o nível.