Python programmeren - Datastructuren: lijsten en multidimensionale lijsten

1 / 22
next
Slide 1: Slide
InformaticaMiddelbare schoolhavo, vwoLeerjaar 4-6

This lesson contains 22 slides, with interactive quizzes and text slides.

time-iconLesson duration is: 50 min

Items in this lesson

Slide 1 - Slide

This item has no instructions

Leerdoel
Aan het eind van deze les ken je verschillende datastructuren en kan je de datastructuren lijst en multidimensionale lijst toepassen in de programmeertaal python.

Slide 2 - Slide

This item has no instructions

Beperking standaard datatypen
In een standaard datatype, zoals int of string, kan je maar één waarde opslaan.

Slide 3 - Slide

This item has no instructions

Datastructuur
De manier waarop de elementen in een lijst bewaard worden, wordt bepaald door het type datastructuur. De datastructuur bepaalt ook de mate van efficiëntie waarmee elementen in een lijst kunnen worden opgeslagen, gewijzigd en teruggevonden.

Slide 4 - Slide

This item has no instructions

Datatype: lijst (1)
Een ander datatype is een lijst. Hiermee is het mogelijk om meerdere waarden in een variabele op te slaan.

Je kunt een lijst bijvoorbeeld gebruiken om een boodschappenlijst in op te slaan.

Slide 5 - Slide

This item has no instructions

Datatype: lijst (2)
In een lijst worden elementen opgeslagen met een label. Dit wordt de index genoemd.

Voorbeeld uit het dagelijks leven
Neem een medicijnkast van een apotheek. Die kast bestaat uit heel veel lades waarin de medicijnen worden bewaard. Om een medicijn snel te kunnen vinden, hebben alle lades een label. Net zo heeft elk element in een lijst een label: de index.

Slide 6 - Slide

This item has no instructions

Datatype: lijst (3)
Een voorwaarde voor de index is dat deze altijd uniek is. Dat wil zeggen dat er geen twee elementen in een lijst kunnen worden opgeslagen met dezelfde index.

Slide 7 - Slide

This item has no instructions

Datatype: lijst (4)
De lengte van een lijst is het aantal elementen dat in de lijst kan worden opgeslagen. Bij sommige programmeertalen moet bij je bij het aanmaken van een lijst opgeven hoeveel elementen deze lijst gaat bevatten. Bij python hoef je dit niet te doen!

Slide 8 - Slide

This item has no instructions

Datatype: lijst (5)
Aanmaken en vullen van een lijst in python.
boodschappen = ["appels", "peren", "ananas"]

Slide 9 - Slide

This item has no instructions

Datatype: lijst (6)
Uitlezen van een lijst
boodschappen = ["appels", "peren", "ananas"]
print(boodschappen[0])
In lijsten staat ieder element op een eigen plek. Iedere plek heeft een uniek nummer (index). Door het nummer van de plek op te geven (te beginnen bij 0) kan de waarde worden opgehaald.

Slide 10 - Slide

This item has no instructions

winkelwagen = ["chips", "cola", "nootjes"]
winkelwagen = ["chips", "cola", "nootjes"]
print(winkelwagen[1])
Wat is de uitvoer van de app van de code die hier rechts staat?

Slide 11 - Open question

This item has no instructions

Datatype: lijst (7)
Uitlezen van alle elementen uit een lijst
boodschappen = ["appels", "peren", "ananas", "mango", "banaan"]

for product in boodschappen:
    print(product)

Slide 12 - Slide

This item has no instructions

Datatype: lijst (8)
Toevoegen en verwijderen van een element uit een lijst
boodschappen = ["appels", "peren", "ananas", "mango", "banaan"]

# toevoegen van een element
boodschappen.append("tomaten")

# verwijderen van een element
del boodschappen[3]

Slide 13 - Slide

This item has no instructions

winkelwagen = ["chips", "cola", "nootjes"]
winkelwagen = ["chips", "cola", "nootjes"]
winkelwagen.append("dipsaus")
del winkelwagen[1]
for product in winkelwagen:
    print(product)
Wat is de uitvoer van de app van de code die hier rechts staat? Geef de juiste volgorde en zet een spatie tussen de verschillende producten.

Slide 14 - Open question

This item has no instructions

Probeer het zelf eens
Opdracht:
Maak een datatype lijst aan en vul deze bij het starten van de app met 3 elementen. 

Geef de elementen vervolgens weer in de uitvoer van de app. 

Vraag dan aan de gebruiker om nog een element toe te voegen aan de lijst.

Geef vervolgens normaals alle elementen uit de lijst weer in de uitvoer van de app.

Slide 15 - Slide

mijnLijst = ["Lampen", "Spiegel", "Schroeven"]

for element in mijnLijst:
     print(element)
     
invoerGebruiker = input("Geef nog een element op: ")
mijnLijst.append(invoerGebruiker)

for element in mijnLijst:
     print(element)

for element in mijnLijst:
     print(element)
Datatype: multidimensionale lijst (1)
Een voorbeeld ter introductie
In een magazijn wordt vaak gewerkt met multidimensionale lijsten. Neem als voorbeeld de IKEA. Als je een product in de winkel ziet kan je die later in het zelfbedieningsmagazijn ophalen. Hiervoor heb je een code van het product nodig, bijvoorbeeld stelling 30 en vak 53.

Je weet dan dat je eerst stelling 30 moet opzoeken. In stelling 30 zoek je vervolgens naar het vak 53.

Slide 16 - Slide

This item has no instructions

Datatype: multidimensionale lijst (2)
Het magazijn kun je zien als een lijst. De elementen in deze lijst zijn de verschillende stellingen. Maar iedere stelling zelf is ook een lijst. De elementen zijn de verschillende vakken.


Een lijst waarvan de elementen ook weer een lijst zijn, wordt een multidimensionale lijst genoemd.

Slide 17 - Slide

This item has no instructions

Datatype: multidimensionale lijst (3)
Aanmaken multidimensionale lijst.
item1 = {"naam": "Boormachine", "aantal": 1, "prijs": 2.95}
item2 = {"naam": "Schroeven 6m", "aantal": 10, "prijs": 0.45}
item3 = {"naam": "Muurverf", "aantal": 2, "prijs": 15.80}

winkelwagen = [item1, item2, item3]

for product in winkelwagen:
    print(product["naam"])
Boormachine
Schroeven
Muurverf

Slide 18 - Slide

This item has no instructions

Datatype: multidimensionale lijst (4)
Toevoegen van een element aan een multidimensionale lijst.
item1 = {"naam": "Boormachine", "aantal": 1, "prijs": 2.95}
item2 = {"naam": "Schroeven 6m", "aantal": 10, "prijs": 0.45}
item3 = {"naam": "Muurverf", "aantal": 2, "prijs": 15.80}

winkelwagen = [item1, item2, item3]

item4 = {"naam": "Verfkwast", "aantal": 2, "prijs": 3.20}
winkelwagen.append(item4)

Slide 19 - Slide

This item has no instructions

Datatype: multidimensionale lijst (5)
Aangepaste uitvoer van een multidimensionale lijst.
item1 = {"naam": "Boormachine", "aantal": 1, "prijs": 2.95}
item2 = {"naam": "Schroeven 6m", "aantal": 10, "prijs": 0.45}
item3 = {"naam": "Muurverf", "aantal": 2, "prijs": 15.80}

winkelwagen = [item1, item2, item3]

for product in winkelwagen:
    if product["naam"] == "Schroeven 6m":
        print("De prijs van schroeven 6m is: " + str(product["prijs"]))

Slide 20 - Slide

This item has no instructions

Datatype: multidimensionale lijst (6)
Verwijderen van een element uit een multidimensionale lijst.
item1 = {"naam": "Boormachine", "aantal": 1, "prijs": 2.95}
item2 = {"naam": "Schroeven 6m", "aantal": 10, "prijs": 0.45}
item3 = {"naam": "Muurverf", "aantal": 2, "prijs": 15.80}

winkelwagen = [item1, item2, item3]

for product in winkelwagen:
    if product["naam"] == "Schroeven 6m":
        winkelwagen.remove(product)

for product in winkelwagen:
    print(product["naam"])

Slide 21 - Slide

This item has no instructions

Probeer het zelf eens
Opdracht:
Neem de multidimensionale lijst uit de vorige lijst over. Vraag aan de gebruiker om nog een product toe te voegen (dus vraag naam van het product, gewenst aantal en de prijs). 

Voeg deze vervolgens toe aan de multidimensionale lijst. 

Lees de multidimensionale lijst uit en geef de uitvoer een nette opmaak: Naam van het product is [NAAM], Gewenst aantal [AANTAL], Prijs per stuk: [PRIJS]

Slide 22 - Slide

item1 = {"naam": "Boormachine", "aantal": 1, "prijs": 2.95}
item2 = {"naam": "Schroeven 6m", "aantal": 10, "prijs": 0.45}
item3 = {"naam": "Muurverf", "aantal": 2, "prijs": 15.80}

winkelwagen = [item1, item2, item3]
     
invoerGebruikerNaam = input("Geef de naam van het product op: ")
invoerGebruikerAantal = input("Geef het gewenste aantal op: ")
invoerGebruikerPrijs = float(input("Geef de prijs op: "))

newItem = {"naam": invoerGebruikerNaam, "aantal": invoerGebruikerAantal, "prijs": invoerGebruikerPrijs}
winkelwagen.append(newItem)

for element in winkelwagen:
     print("Product:" + element["naam"] + " Aantal: " + str(element["aantal"]) + " Prijs: " + str(element["prijs"]))