Liste Annidate
Una lista annidata in Python è una lista che contiene altre sottoliste come suoi elementi. Questa struttura è particolarmente utile per raggruppare elementi correlati all'interno di una lista principale, dove ciascuna sottolista spesso condivide attributi o relazioni comuni.
Per accedere agli elementi all'interno di queste sottoliste, si utilizza l'indicizzazione in sequenza — cioè, si seleziona prima l'indice della lista principale e poi l'indice della sottolista. La seguente applicazione pratica e il diagramma forniscono uno sguardo dettagliato su come creare e gestire efficacemente le liste annidate.
Applicazione di Esempio
Un cliente nel tuo negozio di alimentari ha compilato un elenco di articoli alimentari, dove i dettagli di ciascun articolo sono memorizzati in sottoliste sotto nomi di variabili.
Aiuteremo il cliente ad accedere ai dettagli dalla sottolista milk
, aggiungere un nuovo articolo, rimuovere un articolo esistente e ordinare l'intera grocery_list
.
Iniziamo creando prima una lista e procediamo passo dopo passo:
# Define individual grocery items as lists containing details bread = ["Bread", 4.80, 3, "Gluten Free"] # Item name, price, quantity, type milk = ["Milk", 5.99, 2, "2% Milk"] # Item name, price, quantity, type apple = ["Apple", 1.27, 12, "Fuji"] # Item name, price, quantity, type # Create the main grocery list that contains these items grocery_list = [bread, apple, milk] print("Grocery List:" , grocery_list) # Accessing and printing specific item details using indexing print("Item:", grocery_list[2][0]) # Accesses "Milk" title print("Price:", grocery_list[2][1]) # Accesses price of a Milk, which is 5.99 print("Quantity:", grocery_list[2][2]) # Accesses quantity of Milk, which is 2 print("Type:", grocery_list[2][3]) # Accesses type of Milk, which is "2% Milk" # Adding a new sublist item to the grocery list onion = ["Onions", 1.30, 10, "Yellow"] grocery_list.append(onion) # Removing an item from the grocery list grocery_list.remove(bread) # Sorting the grocery list alphabetically grocery_list.sort() print("Updated Grocery List:", grocery_list)
Il diagramma qui sotto illustra la struttura della lista annidata di grocery_list
. Ogni articolo nella lista, come milk
, apple
e bread
, è esso stesso una lista contenente dettagli specifici dell'articolo.
Ad esempio, per accedere al prezzo del latte, che è memorizzato nella sottolista milk
, si utilizza la sintassi grocery_list[2][1]
. Qui, grocery_list[2]
seleziona la sottolista milk
, e grocery_list[2][1]
va un passo oltre per accedere al secondo elemento di quella sottolista — il prezzo.
Swipe to start coding
Aggiorna un elenco di inventario per la sezione verdure di un negozio di alimentari rimuovendo un articolo, aggiungendo due nuovi articoli e ordinando l'elenco alfabeticamente senza duplicati.
- Crea una variabile
vegetables
con l'elenco["tomatoes", "potatoes", "onions"]
. - Rimuovi
"onions"
dall'elenco. - Aggiungi
"carrots"
all'elenco se non è già presente. - Aggiungi
"cucumbers"
all'elenco se non è già presente. - Ordina l'elenco alfabeticamente.
Requisiti di Output
- Stampa l'elenco aggiornato delle verdure:
"Updated Vegetable Inventory: <$vegetables>"
. - Se
"carrots"
è già nell'elenco, stampa:"Carrots are already in the list."
- Se
"cucumbers"
è già nell'elenco, stampa:"Cucumbers are already in the list."
Soluzione
Grazie per i tuoi commenti!