Indlejrede Lister
En indlejret liste i Python er en liste, der indeholder andre underlister som sine elementer. Denne struktur er særligt nyttig til at gruppere relaterede elementer inden for en hovedliste, hvor hver underliste ofte deler fælles egenskaber eller relationer.
For at få adgang til elementer i disse underlister anvendes indeksering sekventielt — det vil sige, vi vælger først hovedlistens indeks og derefter underlistens indeks. Den følgende praktiske anvendelse og diagram giver et detaljeret indblik i, hvordan du kan oprette og håndtere indlejrede lister effektivt.
Eksempel på anvendelse
En kunde i din dagligvarebutik har udarbejdet en liste over dagligvarer, hvor hver vares detaljer er gemt i underlister under variabelnavne.
Vi vil hjælpe kunden med at tilgå detaljer fra milk
-underlisten, tilføje et nyt element, fjerne et eksisterende element og sortere hele grocery_list
.
Lad os starte med først at oprette en liste 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 opbygning for grocery_list
. Hvert element i listen, såsom milk
, apple
og bread
, er i sig selv en liste, der indeholder specifikke vareoplysninger.
For eksempel, for at tilgå prisen på mælk, som er gemt i underlisten milk
, anvendes syntaksen grocery_list[2][1]
. Her vælger grocery_list[2]
underlisten milk
, og grocery_list[2][1]
går et skridt videre og tilgår det andet element i denne underliste — prisen.
Swipe to start coding
Opdater en lagerliste for en købmands 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 findes. - Tilføj
"cucumbers"
til listen, hvis den ikke allerede findes. - Sortér 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!