ID.nl logo
Zo kun je programmeren in Python - Deel 2
© Reshift Digital
Zekerheid & gemak

Zo kun je programmeren in Python - Deel 2

Na onze eerste kennismaking met Python is het tijd om wat complexere datastructuren te bekijken: lijsten en dictionary’s. We duiken ook in de structuur van strings, zodat je afzonderlijke letters kunt manipuleren. Start je Python-interpreter maar alvast op!

In de vorige les leerde je met drie datatypes in Python werken: int, float en str. Vooral int en float zijn vrij eenvoudige datatypes. Maar in veel programma’s heb je types met meer structuur nodig, we noemen dit ook wel datastructuren. In dit deel leer je met twee belangrijke datastructuren van Python werken.

Lijsten

In veel programma’s werk je niet met één specifiek gegeven, maar met een hele reeks. Een lijst (in Python list) is daarvoor ideaal. Zo maak je bijvoorbeeld een lijst met namen aan:

>>> namen = ['kees', 'jan', 'pieter', 'jan', 'joris', 'rob']>>> len(namen)

6

>>> lege_lijst = []

>>> len(lege_lijst)

0

De functie len, die we uit de vorige les kennen om de lengte van een string terug te geven, werkt ook op een lijst: dan krijg je het aantal elementen in die lijst.

Overigens kan een lijst elementen van verschillende types bevatten, zoals een float, twee strings en een int. Maar vaak heeft een lijst alleen elementen van hetzelfde type.

Functies, parameters en argumenten

Python deelt heel wat functionaliteit op in functies: stukjes code die een specifieke taak uitvoeren, zoals len om de lengte van een lijst of string op te vragen. Een functie kan een parameter hebben: een variabele waarmee de functie werkt en die als waarde het object krijgt dat je aan die functie doorgeeft. Dat object noemen we het argument van de functie. Een functie kan ook meerdere parameters (en dus argumenten) hebben. In deel 6 leer je je eigen functies definiëren en wordt dit allemaal nog veel duidelijker.

Elementen in een lijst

Python kent ook heel wat mogelijkheden om met de elementen in een lijst te werken. Zo vraag je eenvoudig een element uit de lijst op een specifieke positie (ook ‘index’ genoemd) op:

>>> namen[2]'pieter'

Merk op dat de positie in een lijst vanaf 0 begint te tellen: het eerste element is namen[0], het tweede namen[1], het derde namen[2] enzovoort. Je zou dan denken dat je het laatste element moet opvragen met:

>>> namen[len(namen)-1]'rob'

Dat werkt inderdaad, maar Python laat ook een negatieve positie toe, waarmee je vanachter in de lijst begint te tellen. Het laatste element heeft dan positie -1:

>>> namen[-1]'rob'>>> namen[-2]'joris'

Als je goed hebt opgelet, zie je dat de string ‘jan’ twee keer in bovenstaande lijst zit. Dat aantal keren kun je opvragen met de functie count:

>>> namen.count('jan')2>>> namen.count('pieter')1>>> namen.count('koen')0

Je kunt ook de positie van een element in een lijst opvragen:

>>> namen.index('jan')1>>> namen.index('pieter')2>>> namen.index('koen')Traceback (most recent call last):File "<stdin>", line 1, in <module>ValueError: 'koen' is not in list

Zoals je ziet krijg je een foutmelding (ValueError) als het gevraagde element zich niet in de lijst bevindt. Voor een element dat zich meerdere keren in de lijst bevindt, geeft de functie index alleen de eerste positie terug. Maar je kunt ook vragen om vanaf een specifieke positie te zoeken:

>>> namen.index('jan', 2)3

Een lijst veranderen

Als je een lijst hebt aangemaakt, kun je die nog altijd veranderen. In het eenvoudigste geval verander je bijvoorbeeld één element:

>>> namen['kees', 'jan', 'pieter', 'jan', 'joris', 'rob']>>> namen[1] = 'koen'>>> namen['kees', 'koen', 'pieter', 'jan', 'joris', 'rob']

Je kunt een lijst ook omdraaien of sorteren:

>>> namen.reverse()>>> namen['rob', 'joris', 'jan', 'pieter', 'koen', 'kees']>>> namen.sort()>>> namen['jan', 'joris', 'kees', 'koen', 'pieter', 'rob']

Verder kun je ook een element aan het einde van een lijst toevoegen, of op een specifieke positie tussen de andere elementen voegen:

>>> namen['jan', 'joris', 'kees', 'koen', 'pieter', 'rob']>>> namen.append('aniek')>>> namen['jan', 'joris', 'kees', 'koen', 'pieter', 'rob', 'aniek']>>> namen.insert(0, 'lies')>>> namen['lies', 'jan', 'joris', 'kees', 'koen', 'pieter', 'rob', 'aniek']>>> namen.insert(4, 'mireille')>>> namen['lies', 'jan', 'joris', 'kees', 'mireille', 'koen', 'pieter', 'rob', 'aniek']

Je kunt ook bestaande elementen verwijderen. Zo verwijder je met de functie remove(x) het eerste element waarvan de waarde gelijk is aan x:

>>> namen['lies', 'jan', 'joris', 'kees', 'mireille', 'koen', 'pieter', 'rob', 'aniek']>>> namen.remove('pieter')>>> namen['lies', 'jan', 'joris', 'kees', 'mireille', 'koen', 'rob', 'aniek']>>> namen.remove('pieter')Traceback (most recent call last):File "<stdin>", line 1, in <module>ValueError: list.remove(x): x not in list

Zoals je ziet, krijg je een foutmelding als je vraagt om een element te verwijderen dat niet in de lijst zit.

Je kunt ook een element op een gegeven positie verwijderen. Dat doe je met de functie pop:

>>> namen['lies', 'jan', 'joris', 'kees', 'mireille', 'koen', 'rob', 'aniek']>>> namen.pop(2)'joris'>>> namen['lies', 'jan', 'kees', 'mireille', 'koen', 'rob', 'aniek']

Als je goed hebt opgelet, zie je dat de functie pop niet alleen een element verwijdert, maar op de opdrachtregel ook als waarde het verwijderde element teruggeeft ('joris').

Snijden in een lijst

Python heeft een krachtige manier om een lijst in stukken te snijden: ‘slicing’. Herinner je de notatie [n] voor het n-de element? Met [n:] krijg je de elementen terug vanaf index n, met [:n] de elementen tot index n (niet inbegrepen) en met [m:n] de elementen van index m tot n (die laatste niet inbegrepen). Enkele voorbeelden maken dit duidelijk:

>>> namen = ['lies', 'jan', 'kees', 'mireille', 'koen', 'rob']>>> namen[1:]['jan', 'kees', 'mireille', 'koen', 'rob']>>> namen[:4]['lies', 'jan', 'kees', 'mireille']>>> namen[1:4]['jan', 'kees', 'mireille']

Omdat Python begint te tellen vanaf 0 en in de beginpositie van een slice het element zelf meerekent maar in de eindpositie niet, is de notatie van slicing nogal verwarrend. Het helpt daarom om deze posities te beschouwen als de posities van de komma’s in de lijst, te tellen vanaf 1. Alles tussen de komma’s op die posities is dan de gevraagde slice. Neem bijvoorbeeld namen[1:4]. Omdat namen gelijk is aan ['lies', 'jan', 'kees', 'mireille', 'koen', 'rob'], nemen we alles tussen de eerste en de vierde komma, dus van vóór 'jan' tot ná 'mireille', oftewel ['jan', 'kees', 'mireille'].

Slicing is ook een krachtige manier om een deel van een lijst te veranderen. Zo vervang je eenvoudig voorgaande slice in de lijst door een andere naam:

>>> namen['lies', 'jan', 'kees', 'mireille', 'koen', 'rob']>>> namen[1:4] = ['bas']>>> namen['lies', 'bas', 'koen', 'rob']

Nog eens strings

In een string krijg je net zoals in een lijst toegang tot het n-de element met de notatie [n]. Zo krijg je met 'aniek'[1] het tweede teken van de string 'aniek', of de letter n. Ook slicing werkt bij een string: 'aniek'[1:4] is gelijk aan nie. Maar let op: in tegenstelling tot een lijst kun je een string niet veranderen. De poging 'aniek'[1:4] = 'r' geeft een foutmelding.

Dictionary’s

In een lijst heeft elk element als index zijn positie, zodat je eenvoudig het element op een specifieke positie kunt opvragen. Een andere datastructuur is de ‘dictionary’, die als index voor zijn elementen een sleutel gebruikt, vaak een string of een getal. Elke sleutel van de dictionary moet uniek zijn, zodat je eenvoudig de waarde die bij een specifieke sleutel hoort kunt opvragen.

Een voorbeeld maakt duidelijk hoe je met een dictionary werkt:

>>> scores = {'lies': 5, 'bas': 2, 'kees': 1, 'aniek': 3}>>> scores['aniek']3>>> scores['bert']Traceback (most recent call last):File "<stdin>", line 1, in <module>KeyError: 'bert'>>> len(scores)4

Op deze manier kun je eenvoudig de score van een persoon opvragen op basis van zijn of haar naam. Je ziet hier ook dat je een foutmelding krijgt als je een element opvraagt met een index die niet in de dictionary bestaat.

Een dictionary kun je net zoals een lijst veranderen. Je kunt de waarde bij een specifieke sleutel veranderen, maar je kunt even eenvoudig een nieuw element toevoegen: ken gewoon een waarde toe aan een nieuwe sleutel. Bijvoorbeeld:

>>> scores{'lies': 5, 'bas': 2, 'kees': 1, 'aniek': 3}>>> scores['lies'] += 1>>> scores{'lies': 6, 'bas': 2, 'kees': 1, 'aniek': 3}>>> scores['bert'] = 1>>> scores{'lies': 6, 'bas': 2, 'kees': 1, 'aniek': 3, 'bert': 1}

Een sleutel en de bijbehorende waarde uit de dictionary verwijderen, doe je met het speciale keyword del:

>>> scores{'lies': 6, 'bas': 2, 'kees': 1, 'aniek': 3, 'bert': 1}>>> del scores['kees']>>> scores{'lies': 6, 'bas': 2, 'aniek': 3, 'bert': 1}

Samenvatting

In dit deel zijn we lang stil blijven staan bij een van de meest gebruikte datastructuren in Python: de lijst. De kennis die je hebt opgedaan over lijsten, kun je voor heel wat andere datatypes in Python hergebruiken. Zo toonden we hoe de notatie voor een index en voor ‘slicing’ hetzelfde is bij een string. Een ander belangrijk datatype dat je in dit deel zag, is de dictionary, waarin je geen positie maar een sleutel als index gebruikt. In het volgende deel verlaten we de interactieve Python-sessies en schrijven we onze eerste programma’s.

Opdracht 1

Je hebt de volgende lijst met namen: >>> namen = ['lies', 'jan', 'kees', 'mireille', 'koen', 'rob', 'aniek'] Splits deze lijst in zijn laatste element en de rest van de lijst.

Uitwerking opdracht 1

*>>> namen ['lies', 'jan', 'kees', 'mireille', 'koen', 'rob', 'aniek']

laatste_persoon = namen.pop() namen ['lies', 'jan', 'kees', 'mireille', 'koen', 'rob'] laatste_persoon 'aniek'* Dit is een veel gebruikte toepassing van de functie pop(), die niet alleen het element op een specifieke index verwijdert, maar ook het verwijderde element teruggeeft. Waarschijnlijk heb je deze opdracht opgelost met: laatste_persoon = namen.pop(-1) Maar de -1 is niet nodig: zonder index geeft de functie pop het laatste element terug.

Opdracht 2

Haal uit een string alle tekens behalve het eerste en het laatste.

Uitwerking opdracht 2

*>>> naam = 'aniek'

naam[1:-1] 'nie'* Slicing werkt bij een string exact zoals bij een lijst. Bovendien kunnen we ook gebruikmaken van een negatieve index in slicing: -1 verwijst dan naar het laatste element. Omdat Python begint te tellen vanaf 0 en in de beginpositie van een slice het teken zelf meerekent maar in de eindpositie niet, verwijst de slice [1:-1] dus naar alle tekens in de string behalve het eerste en het laatste.

Cheatsheet

datastructuur: een datatype dat uit elementen bestaat die met elkaar samenhangen. dictionary: een datastructuur waarin je elementen opvraagt aan de hand van een unieke sleutel. index (in een lijst): positie van een element in een lijst, te beginnen vanaf 0. index (in een dictionary): sleutel van een element waarmee het uit een dictionary op te vragen is. lijst: een datastructuur waarin je elementen opvraagt aan de hand van hun positie. slicing: het in stukken snijden van een lijst of string.

▼ Volgende artikel
CES 2026: 5 opvallende dingen gespot door Martin van Power Unlimited Tech
Huis

CES 2026: 5 opvallende dingen gespot door Martin van Power Unlimited Tech

Je hebt vorige week al een aantal keer de leukste filmpjes vanaf de CES voorbij zien komen, gemaakt door Martin Verschoor van Power Unlimited Tech. De CES is inmiddels voorbij (tot volgend jaar, Las Vegas!), maar als toetje hebben we nog vijf bijzondere TikToks voor je verzameld.

Ook leuk: CES 2026: 4 opvallende dingen gespot door Martin van Power Unlimited Tech

Vechtende robots

View post on TikTok

Vliegend naar je werk met de jetbike

View post on TikTok

Vloeistof-speakers (en ja, dat ziet er gaaf uit)

View post on TikTok

Tip voor de Vierdaagse: extra steun voor je benen

View post on TikTok

Gewone fiets? Zo maak je er een e-bike van

View post on TikTok
▼ Volgende artikel
3 Windows-instellingen die je direct moet aanpassen voor een snellere en veiligere pc
© ID.nl
Huis

3 Windows-instellingen die je direct moet aanpassen voor een snellere en veiligere pc

Frustraties over een trage pc of ongewenste advertenties? Grote kans dat de standaard Windows-instellingen de boosdoener zijn. Met drie simpele ingrepen optimaliseer je direct de snelheid, privacy en veiligheid van je systeem. Wij zetten de belangrijkste aanpassingen op een rij, zodat je direct weer vlot en zorgeloos aan de slag kunt!

Of je nu net een gloednieuwe laptop uit de doos haalt of al jaren op dezelfde vertrouwde desktop werkt, de standaardinstellingen van Windows zijn zelden optimaal. Microsoft kiest vaak voor opties die hun eigen diensten promoten in plaats van jouw gebruiksgemak centraal te stellen. Gelukkig kun je met een paar gerichte ingrepen direct winst behalen. Pas deze drie essentiële instellingen aan voor meer privacy, snelheid en overzicht.

Schakel onnodige opstart-apps uit

Niets is zo frustrerend als een computer die er minutenlang over doet om startklaar te zijn. De grootste boosdoener hiervoor is vaak een overdaad aan programma's die automatisch opstarten zodra je de pc aanzet. Veel applicaties, van Spotify tot samenwerkingstools als Microsoft Teams, nestelen zich tijdens de installatie ongevraagd in je opstartproces. Dat vreet direct aan je systeemgeheugen en vertraagt de opstarttijd aanzienlijk.

Je lost dit eenvoudig op door naar de instellingen van Windows te navigeren en te zoeken naar de optie Opstart-apps. Hier zie je een duidelijk overzicht van alle software die met Windows mee start, inclusief de impact die elk programma heeft op de prestaties. Loop kritisch door deze lijst heen. Programma's die je niet dagelijks direct na het inloggen nodig hebt, kun je zonder risico uitschakelen door het schuifje om te zetten. Je verwijdert de software hiermee niet; je voorkomt alleen dat ze op de achtergrond draaien zonder dat je erom gevraagd hebt. Je pc zal hierdoor merkbaar vlotter reageren.

Weg met die advertenties en suggesties!

Windows is in de loop der jaren steeds meer veranderd in een platform waarop Microsoft eigen en gesponsorde diensten probeert te verkopen. Dat uit zich in zogenaamde 'suggesties' in je Startmenu, op je vergrendelingsscherm en zelfs in de Verkenner. Voor de meeste gebruikers voelt dat – terecht – als ongewenste reclame binnen een besturingssysteem waarvoor al betaald is. Het zorgt bovendien voor ruis en leidt af van waar je eigenlijk mee bezig bent.

Om deze stroom aan prikkels te stoppen, duik je in het menu Persoonlijke instellingen. Bij de instellingen voor het Startmenu en het Vergrendelingsscherm vind je opties die verwijzen naar het tonen van suggesties, tips of leuke weetjes. Vink deze opties uit om een schonere, rustigere interface te krijgen. Vergeet ook niet bij de privacy-instellingen de optie uit te zetten die Windows toestaat om je Instellingen-app te gebruiken voor het tonen van voorgestelde inhoud. Het resultaat is een professionelere werkomgeving die doet wat hij moet doen, zonder je continu te proberen te verleiden tot extra klikken.

Maak bestandsextensies zichtbaar

Een van de meest riskante standaardinstellingen in Windows is het verbergen van bestandsextensies voor bekende bestandstypen. Standaard zie je alleen de naam van een bestand, bijvoorbeeld 'factuur', maar niet of het een .pdf, .docx of een .exe is. Cybercriminelen maken daar dankbaar gebruik van door virussen te vermommen als onschuldige documenten. Een bestand dat 'foto.jpg.exe' heet, wordt door Windows dan getoond als 'foto.jpg', waardoor je denkt een afbeelding te openen terwijl je in werkelijkheid schadelijke software installeert.

Je kunt dit veiligheidsrisico direct verhelpen via de Bestandsverkenner. Zoek in de menubalk naar de optie Weergeven en navigeer vervolgens naar de instellingen voor weergeven. Hier vind je een optie genaamd Extensies voor bestandsnamen. Zorg dat deze optie aangevinkt staat. Hoewel het in het begin even wennen kan zijn om achter elk bestand een punt en drie of vier letters te zien staan, geeft het je volledige controle en inzicht. Je ziet nu in één oogopslag met wat voor type bestand je écht te maken hebt, en dat verkleint de kans op een succesvolle malware-infectie drastisch.

Populaire merken voor Windows-laptops

Wie op zoek is naar hardware die het meeste uit Windows haalt, komt al snel uit bij een aantal gevestigde namen die de markt domineren. Een van de grootste spelers is Lenovo, dat met name met de ThinkPad-serie een ijzersterke reputatie heeft opgebouwd in de zakelijke markt dankzij robuuste bouwkwaliteit en uitstekende toetsenborden. Voor consumenten die design en innovatie zoeken, is HP (Hewlett-Packard) een veelgekozen merk, mede dankzij de Omnibook- en Envy-lijnen die esthetiek combineren met krachtige prestaties. Ook Acer blijft een vaste waarde, waarbij vooral de Aspire-modellen steevast hoge ogen gooien in reviews vanwege hun interessante prijs-kwaliteitverhouding. Tot slot biedt het Taiwanese ASUS vaak veel rekenkracht voor een scherpe prijs en durven zij met hun ZenBook-serie vaak te experimenteren met nieuwe technologieën zoals dubbele schermen.