Curso Avanzado de Desarrollo en Python
Capítulo
>
Nivel
Listas Avanzadas
Creando una lista anidada
Objetivo
Almacena los condimentos correctamente en el estante de especias utilizando listas anidadas.
Uno de los estantes de especias está vacío y necesita ser reabastecido adecuadamente, hay condimentos en almacenamiento pero deben ser acomodados y organizados correctamente y colocados en el estante de especias.
Debido a la gran cantidad de elementos y al hecho de que están almacenados en diferentes estantes de un estante de especias, las listas y diccionarios normales no serán suficientes. Para situaciones como esta puedes utilizar Listas Anidadas, que son listas que contienen una o más listas en su interior.
Para almacenar las especias primero necesitas agarrar frascos para poder guardar los elementos correctamente, dirígete a la marca de X dorada, mira hacia la caja y utiliza la función collect() para tomar "empty jar" y facilitar el almacenamiento.
Una vez que se recojan los frascos, camina hacia las marcas de X claras frente a las cajas de madera. Hay cuatro (4) constantes de listas presentes en este nivel, una para cada caja, las cuales son: crate1, crate2, crate3 y crate4. Utiliza la función speak() con estas constantes de lista para determinar el contenido de cada caja; las constantes corresponden a las cajas de derecha a izquierda, por ejemplo player.speak(crate1).
Una vez que determines el contenido de las cajas, utiliza Comprensiones de Listas para crear nuevas listas sin los elementos innecesarios encontrados dentro de las constantes de lista. Si el contenido de una caja incluye: "package", "string" o "stuffing", usa la misma fórmula que en el capítulo anterior para curar las listas, por ejemplo:
crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]
El código anterior creará una nueva lista con elementos que no incluyen la palabra "string". Las listas se deben nombrar: herbs, spices, salts y sugars; sabrás qué lista debe llamarse así porque los elementos dentro de las listas llevan el nombre.
Una vez que se hayan creado las cuatro listas, es hora de combinarlas todas en una Lista Anidada. Crea una lista llamada seasonings y añade las listas que creaste dentro de la nueva lista, de la siguiente manera:
seasonings = [ ] seasonings.append(herbs) .......
Una vez que todos los elementos se hayan reunido en la Lista Anidada, camina hacia la marca de X oscura sobre la alfombra verde y mira hacia el estante. Utiliza la función speak() en conjunto con la lista anidada seasonings para confirmar los elementos en cada estante. Luego, utiliza la función place() con la lista para completar el nivel, de la siguiente manera: player.speak(seasonings).