Indlejrede Lister
En indlejret liste i Python er en liste, der indeholder andre underlister som dens elementer. Denne struktur er særligt nyttig til at gruppere relaterede elementer inden for en hovedliste, hvor hver underliste ofte deler fælles attributter eller relationer.
For at få adgang til elementer inden for disse underlister bruges indeksering sekventielt — hvilket betyder, vi vælger først hovedlisteindekset og derefter underlisteindekset. Den følgende praktiske anvendelse og diagram giver et detaljeret kig på, hvordan du effektivt kan oprette og administrere indlejrede lister.
Eksempelapplikation
En kunde i din købmandsbutik har udarbejdet en liste over dagligvarer, hvor hver vares detaljer er gemt i underlister under variabelnavne.
Vi vil hjælpe kunden med at få adgang til detaljer fra milk
-underlisten, tilføje en ny vare, fjerne en eksisterende vare og sortere hele grocery_list
.
Lad os starte med at oprette en liste først og gå trin for trin:
# 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)
Diagrammet nedenfor illustrerer den indlejrede listes struktur af grocery_list
. Hver vare på listen, såsom milk
, apple
og bread
, er i sig selv en liste, der indeholder specifikke vareoplysninger.
For eksempel, for at få adgang til prisen på mælk, som er gemt i milk
underlisten, bruger du syntaksen grocery_list[2][1]
. Her vælger grocery_list[2]
milk
underlisten, og grocery_list[2][1]
går et skridt videre for at få adgang til det andet element i den underliste — prisen.
Swipe to start coding
Opdater en lagerliste for en købmandsforretnings grøntsagsafdeling ved at fjerne en vare, tilføje to nye varer og sortere listen alfabetisk uden dubletter.
- Opret en variabel
vegetables
med listen["tomatoes", "potatoes", "onions"]
. - Fjern
"onions"
fra listen. - Tilføj
"carrots"
til listen, hvis den ikke allerede er der. - Tilføj
"cucumbers"
til listen, hvis den ikke allerede er der. - Sorter listen alfabetisk.
Outputkrav
- Udskriv den opdaterede grøntsagsliste:
"Updated Vegetable Inventory: <$vegetables>"
. - Hvis
"carrots"
allerede er på listen, udskriv:"Carrots are already in the list."
- Hvis
"cucumbers"
allerede er på listen, udskriv:"Cucumbers are already in the list."
Løsning
Tak for dine kommentarer!