Hoofdstuk 3 - Introductie van Lijsten
01 - Wat is een lijst?
- Een lijst is een verzameling items in een bepaalde volgorde
- Items in een lijst hoeven niet op een bepaalde manier gerelateerd te zijn
- De lijst wordt toegewezen aan een variabele
- Omdat een lijst meestal meer dan één item bevat is de naam van de variabele vaak ook in meervoud
cars = ['Land Rover','BMW','Honda','Mercedes','Audi']
print(cars)
['Land Rover', 'BMW', 'Honda', 'Mercedes', 'Audi']
items = ['Pasta', 21, "gras", 18-6, 'Honda ' + 'Max',['Mercedes','Ferrari']]
print(items)
['Pasta', 21, 'gras', 12, 'Honda Max', ['Mercedes', 'Ferrari']]
In andere programmeertalen is een lijst ook bekend onder de naam dynamic array.
- Lijsten worden gebruikt in praktisch elke applicatie: bij het maken van spellen, het ophalen van gegevens uit een database, het verwerken van data via een API of het realtime aanpassen van grafieken op een website.
02 - Items in een lijst benaderen
- Lijsten zijn geordende verzamelingen
- Elk item heeft een indexwaarde waarmee je het kan aanspreken
- Om een item te benaderen vermeld je de variabelenaam van de lijst + het indexnummer
- Indexnummers van de lijst plaats je tussen brackets [ ]
cars = ['Land Rover','BMW','Honda','Mercedes','Audi']
print(cars[0])
Land Rover
Als we slechts één item uit de lijst vragen, geeft Python het weer zonder brackets
- Als een lijst een string bevat kun je daar string-methoden op toepassen
cars = ['Land Rover','BMW','Honda','Mercedes','Audi']
print(cars[3].upper())
MERCEDES
- Het eerste item in een lijst heeft altijd indexwaarde 0
- Het laatste item in een lijst heeft altijd indexwaarde -1 (het één na laatste item is -2, enz.)
cars = ['Land Rover','BMW','Honda','Mercedes','Audi']
print("Een " + cars[-1].title() + " is in Duitsland veel goedkoper!")
Een Audi is in Duitsland veel goedkoper!
Een bereik selecteren uit een lijst
- Je kunt ook een bereik selecteren uit een lijst door de start- en eind-positie op te geven
- Tussen de start- en eind-positie staat een dubbele punt
- De start positie is inclusief het item
- De eind positie is exclusief het item
cars = ['Land Rover', 'BMW', 'Ferrari' ,'Aston Martin', 'McLaren', 'Honda', 'Mercedes', 'Audi']
expensive_cars = cars[2:-3]
print(expensive_cars)
['Ferrari', 'Aston Martin', 'McLaren']
Meer voorbeelden in het volgende hoofdstuk
03 - Items Wijzigen
- Lijsten worden veel gebruikt en zijn doorgaans dynamisch
- Dynamisch wil zeggen dat er items worden toegevoegd, gewijzigd of verwijderd
- Het wijzigen van een item in een lijst heeft een vergelijkbare syntax voor het benaderen van een item
- Om een item te wijzigen gebruik je de variabelenaam van de lijst + het indexnummer
cars = ['Land Rover','BMW','Honda','Mercedes','Audi']
print(cars[0])
Land Rover
cars = ['Land Rover','BMW','Honda','Mercedes','Audi']
cars[0] = 'Lamborghini'
print(cars)
['Lamborghini', 'BMW', 'Honda', 'Mercedes', 'Audi']
04 - Items Toevoegen
- Het meest eenvoudig om items aan een lijst toe te voegen is met de .append( )-methode
- Met de .append( )-methode wordt een item aan het einde van een lijst toegevoegd
cars = ['Lamborghini','BMW','Honda','Mercedes','Audi']
cars.append('Spyker')
print(cars)
['Lamborghini', 'BMW', 'Honda', 'Mercedes', 'Audi', 'Spyker']
- Het is goed mogelijk om in een programma te beginnen met een lege lijst en deze gaandeweg te vullen
motors = []
motors.append('Yamaha')
motors.append('Aprilia')
motors.append('KTM')
print(motors)
['Yamaha', 'Aprilia', 'KTM']
- Om een item in het midden van de lijst toe te voegen kan de .insert( )-methode worden gebruikt
- Bij gebruik van de .insert( )-methode is het nodig om de indexpositie mee te geven
motors = []
motors.append('Yamaha')
motors.append('Aprilia')
motors.append('KTM')
motors.insert(1, 'Honda')
print(motors)
['Yamaha', 'Honda', 'Aprilia', 'KTM']
05 - Items Verwijderen
- Je kunt een item uit een lijst verwijderen op basis van zijn positie of op basis van zijn waarde
- Een item verwijderen op basis van een indexnummer kan met een del statement
- Een verwijderd item met een del statement kan niet meer gebruikt worden
motors = ['Yamaha','Aprilia','KTM','Honda']
del motors[2]
print(motors)
['Yamaha', 'Aprilia', 'Honda']
- De .pop( )-methode verwijdert het laatste item uit een lijst, maar je kunt na het verwijderen nog met het item aan de slag
- De laatste waarde die je uit een lijst verwijdert met .pop( ) kan worden opgeslagen in een variabele
motors = ['Yamaha','Aprilia','KTM','Honda']
last_item = motors.pop()
print(motors)
print(last_item)
['Yamaha', 'Aprilia', 'KTM']
Honda
- Met de .pop( )-methode kan ook een specifiek item uit een lijst gehaald worden wanneer er ook een index wordt meegegeven
motors = ['Yamaha', 'Aprilia', 'KTM', 'Honda']
best_item = motors.pop(2)
print(motors)
print(best_item)
['Yamaha', 'Aprilia', 'Honda']
KTM
- Een item verwijderen op basis van de letterlijke waarde kan met de methode .remove( )
motors = ['Yamaha','Aprilia','KTM','Honda']
print(motors)
expensive = 'Aprilia'
motors.remove(expensive)
print(expensive)
print(motors)
['Yamaha', 'Aprilia', 'KTM', 'Honda']
Aprilia
['Yamaha', 'KTM', 'Honda']
| instructie | Eigenschap | Gebruikt index |
|---|---|---|
| del | Verwijdert item uit lijst dat je niet meer nodig hebt | Ja |
| .pop( ) | Verwijdert item uit lijst dat je nog wilt gebruiken | Ja (hoeft niet) |
| .remove( ) | Verwijdert item uit lijst op basis van de letterlijke waarde | Nee |
- del gebruik je om iets te verwijderen uit een lijst - wat je niet meer nodig hebt
- .pop( ) gebruik je om iets te verwijderen uit een lijst - en om de waarde verder nog wel te gebruiken
- .pop( ) maakt gebruik van een indexnummer
- Als je geen index opgeeft bij .pop( ), wordt het laatste item verwijderd
- .remove( ) gebruik je om een item te verwijderen uit een lijst waarvan je de waarde weet
- .remove( ) verwijdert het eerste gevonden item, zijn er meer met dezelfde waarde, gebruik dan een loop (hoofdstuk 7)
06 - Items Sorteren
- Lijsten kunnen op verschillende manieren gesorteerd worden
- Met de .sort( )-methode kun je een lijst alfabetisch sorteren
- Bij het alfabetisch sorteren is er een onderscheid tussen kleine- en hoofd-letters
- De .sort( )-methode verandert de lijst permanent, de oorspronkelijke situatie is niet meer beschikbaar
motors = ['Yamaha','Aprilia','KTM','Honda','buell','harley','kawasaki','234']
motors.sort()
print(motors)
['234', 'Aprilia', 'Honda', 'KTM', 'Yamaha', 'buell', 'harley', 'kawasaki']
- Door een argument reverse=True aan de .sort( )-methode toe te voegen ontstaat de omgekeerde volgorde
- De .sort( )-methode kan ook integers sorteren
- Wanneer je strings en integers combineert in een lijst geeft de .sort( )-methode een foutmelding
numbers = [1,3,5,7,2]
numbers.sort(reverse=True)
print(numbers)
[7, 5, 3, 2, 1]
- Om de oorspronkelijke sortering van de lijst te behouden kun je de .sorted( )-functie gebruiken
- De .sorted( )-functie sorteert naar een nieuw resultaat en laat de originele lijst zoals hij is
numbers = [1,3,9,1,5,7,2]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
[1, 1, 2, 3, 5, 7, 9]
Kleine- & hoofd-letters gemixed sorteren
- Python prioriteert hoofdletters bij de sort( )-methode
- Om dit te voorkomen kun je het volgende argument gebruiken: key=str.lower
motors = ['Yamaha','Aprilia','KTM','Honda','buell','harley','kawasaki','234']
motors.sort(key=str.lower)
print(motors)
['234', 'Aprilia', 'buell', 'harley', 'Honda', 'kawasaki', 'KTM', 'Yamaha']
Een lijst in omgekeerde volgorde
- De oorspronkelijke volgorde van een lijst omkeren kan met de .reverse( )-methode
- Let op dat de .reverse( )-methode niet alfabetisch sorteert. Hij draait alleen de lijst om
- De omkering is permanent. Wil je dat niet? Voer hem dan nog eens uit
motors = ['Yamaha','Aprilia','KTM','Honda','buell','harley','kawasaki','234']
motors.reverse()
print(motors)
['234', 'kawasaki', 'harley', 'buell', 'Honda', 'KTM', 'Aprilia', 'Yamaha']
07 - De items in een lijst tellen
- De functie len( ) kan het aantal items in een lijst tellen
- Python begint bij index 0 voor het eerste item, maar
len(motors)geeft het aantal items (hier 8)
motors = ['Yamaha','Aprilia','KTM','Honda','buell','harley','kawasaki','234']
print(len(motors))
8
Oefening
Quiz
AI in de praktijk - Bestandslijsten verwerken
- In dit hoofdstuk heb je geleerd hoe je werkt met lijsten
- In de praktijk worden lijsten vaak gebruikt om bestanden, producten, klanten, taken of deelnemers te bewaren
- In deze opdracht gebruiken we een lijst met bestandsnamen alsof deze later uit een echte map zou kunnen komen
- Voorbeeld van een lijst met PDF-bestanden:
factuur_003.pdf
offerte_001.pdf
rapport_002.pdf
contract_004.pdf
scan_005.pdf
- Gebruik onderstaande prompt in een AI-tool
Je bent een Python-assistent voor beginners.
Maak een eerste versie van een Python-script dat werkt met een lijst van PDF-bestanden.
Het script moet:
- een lijst maken met vijf PDF-bestanden
- de lijst printen
- een nieuw PDF-bestand toevoegen
- het eerste bestand printen
- het laatste bestand printen
- het laatste bestand verwijderen en apart printen
- de lijst alfabetisch sorteren
- het aantal bestanden printen
Gebruik uitsluitend:
- lists
- strings
- append()
- pop()
- sort()
- len()
- print()
- indexen zoals [0] en [-1]
Gebruik geen:
- input()
- loops
- dictionaries
- functies
- classes
- externe modules
- pathlib
- os
Geef alleen de Python-code terug.
- Kopieer de prompt naar ChatGPT, Claude, Gemini of een andere AI-tool
- Kopieer de gegenereerde code naar de editor
- Voer de code uit
- Controleer of de lijst correct wordt aangepast
- Verander daarna zelf:
- één bestandsnaam in de lijst
- het bestand dat met
append()wordt toegevoegd - de volgorde door opnieuw te sorteren
Reflectievragen
- Welke variabele bevat de lijst met bestandsnamen?
- Welke regel voegt een nieuw bestand toe?
- Welke regel print het eerste bestand uit de lijst?
- Welke regel print het laatste bestand uit de lijst?
- Welke regel verwijdert een bestand en bewaart dit in een variabele?
- Welke regel sorteert de lijst alfabetisch?
- Welke regel telt het aantal items in de lijst?
- Gebruikt de AI technieken die in dit hoofdstuk behandeld zijn?
- Begrijp je elke regel van de code?
Extra uitdaging
- In de praktijk wil je soms één bestandsnaam vervangen door een betere naam
- Vraag aan AI om de code aan te passen zodat het eerste bestand in de lijst wordt gewijzigd
Pas de code aan zodat het eerste bestand in de lijst wordt vervangen door:
archief_factuur_003.pdf
Gebruik een eenvoudige Python-oplossing.
Gebruik geen loops, functies, classes, dictionaries of externe modules.
- Begrijp je welke index wordt gebruikt om het eerste item te wijzigen?
- Controleer of de lijst na de wijziging nog steeds goed wordt gesorteerd