Cours avancé de développement Python
Chapitre
>
Niveau
Listes avancées
Créer une liste imbriquée
Objectif
Rangez correctement les assaisonnements dans le porte-épices en utilisant des listes imbriquées.
L'un des porte-épices est vide et doit être correctement réapprovisionné, il y a des assaisonnements en réserve mais ils doivent être adaptés, correctement organisés et placés dans le porte-épices.
En raison du grand nombre d'objets et du fait qu'ils sont stockés sur différentes étagères dans un porte-épices, les listes et dictionnaires normaux ne suffiront pas. Pour ce genre de situations, vous pouvez utiliser des Listes Imbriquées, ce sont des listes qui contiennent une ou plusieurs listes à l'intérieur.
Pour stocker les épices, vous devez d'abord récupérer des pots afin de bien ranger les objets, marchez jusqu'à la marque X dorée, faites face au coffre et utilisez la collect() function pour récupérer "empty jar" afin de faciliter le rangement.
Une fois les pots récupérés, marchez jusqu'aux marques X claires devant les caisses en bois. Il y a quatre (4) constantes de liste présentes dans ce niveau, une pour chaque caisse, à savoir : crate1, crate2, crate3 et crate4. Utilisez la fonction speak() avec ces constantes de liste pour déterminer le contenu de chaque caisse. Les constantes correspondent aux caisses de droite à gauche, par exemple player.speak(crate1).
Une fois que vous avez déterminé le contenu des caisses, utilisez les Compréhensions de liste pour créer de nouvelles listes sans les éléments superflus présents dans les constantes de liste. Si le contenu d'une caisse comprend : "package", "string" ou "stuffing", utilisez la même formule que dans le chapitre précédent afin de constituer les listes, par exemple:
crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]
Le code ci-dessus créera une nouvelle liste contenant les éléments qui ne comportent pas le mot "string".
Les listes doivent être nommées : herbs, spices, salts et sugars. Vous saurez quelle liste doit porter quel nom car les éléments à l'intérieur des listes portent le nom correspondant.
Une fois que les quatre listes ont été créées, il est temps de les combiner toutes dans une Liste Imbriquée. Créez une liste nommée seasonings et ajoutez les listes que vous avez créées à l'intérieur de cette nouvelle liste, comme ceci:
seasonings = [ ] seasonings.append(herbs) .......
Une fois que tous les éléments sont regroupés dans la Liste Imbriquée, marchez jusqu'à la marque X sombre sur le tapis vert et faites face à l'étagère. Utilisez la fonction speak() en conjonction avec la liste imbriquée seasonings pour vérifier les éléments sur chaque étagère. Ensuite, utilisez la fonction place() avec la liste pour terminer le niveau, comme ceci : player.speak(seasonings).