Corso Avanzato di Sviluppo Python
Capitolo
>
Livello
Liste Avanzate
Ordinamento degli insiemi
Obiettivo
Organizza e cucina un pasto utilizzando gli Sets per ordinare e comporre gli ingredienti.
Sarebbe una buona idea iniziare a preparare del cibo: ci sono alcuni ingredienti nel frigo, tutti avvolti, oltre ad alcune erbe che potresti usare per dare sapore al piatto. Tutti i materiali sono memorizzati in liste, quindi sarebbe opportuno utilizzare gli Sets per consolidare gli elementi e sfruttare al massimo la tua cucina.
Ci sono tre (3) costanti di lista, di cui due (2) sono carni, denominate: pack1 e pack2, e una (1) è costituita da materiali da cucina, denominata ingredients. Cammina verso il segno X scuro sul tappeto arancione e rivolgi lo sguardo verso il frigo, usa la funzione collect() per prendere pack1 e pack2 dal frigo, in questo modo: player.collect(pack1).
Una volta raccolta la carne, cammina verso il segno X chiaro e rivolgi lo sguardo verso il tagliere; qui verificheremo il contenuto dei pacchi utilizzando la funzione speak() con entrambe le costanti di lista che hai raccolto. Da qui, consolideremo gli elementi utilizzando gli Sets come nel livello precedente. Crea due Sets chiamati set1 e set2, e utilizzando la funzione set() assegna pack1 e pack2 a essi, per esempio: set1 = set(pack1).
Una volta che le liste sono state consolidate in Sets, è il momento di ordinare e compartimentare gli elementi in Sets più piccoli per comodità.
Il primo metodo per ottenere ciò si chiama systemic_difference; esso ci permetterà di separare gli elementi non condivisi tra ciascun Set. Crea un Set chiamato unique e utilizza i due Sets per confrontare e identificare gli elementi unici usando systemic_difference, in questo modo: unique = set1.symmetric_difference(set2). Usa il metodo speak() con il Set che hai creato per confermare il contenuto del set.
Prosegui con l'ordinamento creando un Set chiamato shared e utilizza il metodo intersection appreso nel livello precedente per identificare gli elementi presenti in entrambi i Sets. Utilizza i due Sets per confrontare e identificare gli elementi, in questo modo: shared = set1.intersection(set2). Usa il metodo speak() con il Set che hai creato per confermarne il contenuto.
Infine, utilizza un metodo chiamato difference, che ci permetterà di separare gli elementi presenti solo in un Set e non nell'altro. Crea due (2) Sets chiamati meat1 e meat2, usa i due Sets originali per confrontare e identificare gli elementi utilizzando difference, in questo modo: meat1 = set1.difference(set2) e meat2 = set2.difference(set1). Usa il metodo speak() con entrambi i Sets di carne che hai creato per confermarne il contenuto.
Con le carni ordinate, cammina verso il segno X scuro sopra il tappeto blu, rivolgi lo sguardo verso il frigo e utilizza la funzione place() per depositare il Set shared che hai creato, in questo modo: player.place(shared). In questo modo metterai via gli ingredienti che non stai cucinando.
Cammina verso il segno X dorato, rivolgi lo sguardo verso l'armadietto e utilizza la funzione collect() per acquisire l'ultima costante di lista denominata ingredients e usa la funzione speak() per confermarne il contenuto. Trasferisci gli elementi da ingredients a un nuovo Set chiamato set3. Ora che hai tutti gli ingredienti, crea due Sets, denominati meal1 e meal2, utilizzando il metodo union per combinare tutti gli elementi necessari per cucinare.
Per meal1, combina set3 e meat1 in questo modo: meal1 = set3.union(meat1). Cammina verso il segno X scuro sul tappeto viola e, con il Set meal1, usa la funzione speak() per confermare il contenuto e la funzione place() per cucinare il pasto nella pentola.
Per meal2 fai lo stesso, ma invece utilizza il metodo union con set3 e meat2. Cammina verso il segno X scuro sul tappeto giallo e rivolgi lo sguardo verso la pentola; usa le funzioni speak() e place() con meal2 per completare il livello.