Zelfstudie Python-woordenboek: Methoden, voorbeelden en algemene patronen
Woordenboeken zijn overal in Python aanwezig, van JSON-reacties tot configuratie. Leer hoe u ze kunt maken, lezen en bijwerken, en pak vervolgens de tel-, groepeer- en samenvoegpatronen op die u bij echte projecten gaat gebruiken.
- Een Python-woordenboek slaat sleutel- en waardeparen op en zoekt zeer snel een waarde op aan de hand van de sleutel.
- Gebruik
get()als er mogelijk een sleutel ontbreekt, omdat vierkante haakjesKeyErroromhoog staan. - Sleutels moeten hashbaar zijn, zoals strings, cijfers of tupels. Lijsten kunnen geen sleutels zijn.
copy()is oppervlakkig, dus geneste gegevens blijven gedeeld, tenzij jedeepcopygebruikt.
Als een lijst uit een rij genummerde vakken bestaat, is een Python-woordenboek een verzameling gelabelde vakken. Je vraagt wat je wilt op naam in plaats van op positie. Daarom zitten woordenboeken achter JSON-gegevens, configuratie, caches en een groot deel van Python zelf.
Deze tutorial begint met de basis en gaat verder met de patronen die ervaren ontwikkelaars dagelijks gebruiken. We hebben alle voorbeelden uitgevoerd op Python 3.13 en de getoonde uitvoer is afkomstig van die run.
Wat is een woordenboek?
Een woordenboek, oftewel dict, wijst sleutels toe aan waarden. Elke sleutel verschijnt slechts één keer en waarden kunnen van alles zijn, inclusief lijsten of andere woordenboeken.
| Typ | Toegang door | Besteld | Duplicaten | Beste voor |
|---|---|---|---|---|
lijst |
Positie | Ja | Toegestaan | Reeksen |
tupel |
Positie | Ja | Toegestaan | Vaste records |
instellen |
Alleen lidmaatschap | Nee | Niet toegestaan | Unieke artikelen |
dictaat |
Sleutel | Invoegopdracht | Sleutels zijn uniek | Zoeken op naam |
Sinds Python 3.7 behouden woordenboeken officieel de invoegvolgorde. Veel oudere tutorials noemen ze nog steeds ongeordend, wat niet langer waar is. Voor een bredere vergelijking van de andere typen, zie Python-lijst versus tupel versus set.
Opzoekingen zijn snel omdat woordenboeken een hashtabel gebruiken. Het controleren van een sleutel kost ongeveer evenveel tijd, ongeacht of het woordenboek tien of een miljoen items bevat, terwijl het doorzoeken van een lijst langzamer wordt naarmate deze groeit.
Maak een woordenboek
user = {"name": "Asha", "age": 31, "city": "Pune"}
empty = {}
from_keywords = dict(name="Asha", age=31)
from_pairs = dict([("a", 1), ("b", 2)])
Accolades zijn de meest voorkomende vorm. Eén valkuil: {} creëert een leeg woordenboek, geen lege verzameling. Voor een lege set heb je set() nodig.
Lees waarden veilig af
Er zijn twee manieren om een waarde te lezen, en het verschil is van belang als een sleutel mogelijk niet bestaat:
user["name"] # 'Asha'
user["email"] # KeyError: 'email'
user.get("email") # None
user.get("email", "not set") # 'not set'
Gebruik vierkante haken als de sleutel moet bestaan, zodat een ontbrekende sleutel luid faalt. Gebruik get() als afwezigheid normaal is, zoals een optioneel veld in een API-antwoord. Om te controleren of er een sleutel is, gebruikt u de operator in, die naar sleutels kijkt in plaats van naar waarden:
"city" in user # True
"Pune" in user # False
Toevoegen, bijwerken en verwijderen
Als u een sleutel aan een sleutel toekent, wordt deze bijgewerkt als deze bestaat, of wordt deze toegevoegd als deze niet bestaat:
user["age"] = 32
user["email"] = "asha@example.com"
print(user)
# {'name': 'Asha', 'age': 32, 'city': 'Pune', 'email': 'asha@example.com'}
Python biedt verschillende manieren om items te verwijderen:
user.pop("city") # returns 'Pune' and removes it
user.pop("phone", None) # no error if it is missing
del user["email"] # removes it, and raises KeyError if missing
user.clear() # empties the dictionary
Gebruik pop() als u de waarde terug wilt. Door een standaardwaarde als tweede argument door te geven, wordt een fout vermeden als de sleutel er niet is. popitem() verwijdert het meest recent toegevoegde paar en retourneert het.
Loop over een woordenboek
Looping geeft je direct de sleutels. Gebruik items() om zowel sleutels als waarden op te halen:
user = {"name": "Asha", "age": 32}
for key, value in user.items():
print(key, "=", value)
# name = Asha
# age = 32
keys(), values() en items() geven liveweergaven weer in plaats van kopieën, zodat ze latere wijzigingen weerspiegelen. Voeg geen sleutels toe of verwijder deze niet tijdens het doorlopen van een woordenboek, omdat Python een RuntimeError opwerpt. Loop over list(user) als dat nodig is.
Tip: De in controle van een woordenboek gaat snel, maar "Pune" in user.values() moet elke waarde scannen. Als u dit vaak doet met grote hoeveelheden gegevens, kan het zijn dat uw woordenboek verkeerd is ingetoetst.
Spiekbriefje voor woordenboekmethoden
| Methode | Wat het doet |
|---|---|
get(k, standaard) |
Retourneert een waarde, of de standaardwaarde als de sleutel ontbreekt |
keys() |
Geeft een weergave van de toetsen terug |
values() |
Geeft een weergave van de waarden terug |
items() |
Retourneert een weergave van sleutel- en waardeparen |
update(other) |
Voegt een ander woordenboek toe of overschrijft het |
pop(k, standaard) |
Verwijdert een sleutel en retourneert de waarde ervan |
popitem() |
Verwijdert en retourneert het laatst toegevoegde paar |
standaard instellen(k, v) |
Retourneert de waarde en voegt eerst v in als de sleutel ontbreekt |
copy() |
Retourneert een ondiepe kopie |
clear() |
Verwijdert alles |
dict.fromkeys(toetsen, v) |
Bouwt een woordenboek op uit een lijst met sleutels |
Woordenboeken samenvoegen
Een algemene behoefte is het toepassen van gebruikersinstellingen bovenop de standaardinstellingen. Als de toetsen botsen, wint de rechterkant:
defaults = {"theme": "light", "lang": "en"}
saved = {"theme": "dark"}
defaults | saved
{**defaults, **saved}
# Both give: {'theme': 'dark', 'lang': 'en'}
De operator | heeft Python 3.9 of hoger nodig, terwijl de versie ** ook op oudere versies werkt. Beiden maken een nieuw woordenboek aan. Daarentegen veranderen defaults.update(saved) en defaults |= saved defaults van plaats.
Begrijpen en sorteren
Woordenboekbegrippen bouwen een nieuw woordenboek op in één leesbare regel, net zoals lijstbegrippen dat doen voor lijsten:
prices = {"pen": 10, "book": 250, "bag": 900}
{k: v for k, v in prices.items() if v > 100}
# {'book': 250, 'bag': 900}
Om op waarde te sorteren, geeft u een functie key door aan sorted(). Gebruik max() om de sleutel met de grootste waarde te vinden:
sorted(prices.items(), key=lambda item: item[1], reverse=True)
# [('bag', 900), ('book', 250), ('pen', 10)]
max(prices, key=prices.get)
# 'bag'
Een woordenboek heeft geen sort()-methode en sorted() retourneert een lijst met paren. Plaats het resultaat in dict() als je een woordenboek in die volgorde wilt.
Patronen tellen en groeperen
Er komen voortdurend twee taken naar voren. De eerste is tellen, wat je kunt doen met get(), standaard ingesteld op nul:
words = "to be or not to be".split()
counts = {}
for word in words:
counts[word] = counts.get(word, 0) + 1
print(counts)
# {'to': 2, 'be': 2, 'or': 1, 'not': 1}
De standaardbibliotheek maakt dit nog korter met Counter:
from collections import Counter
Counter(words).most_common(2)
# [('to', 2), ('be', 2)]
De tweede is groeperen, en defaultdict is hier ideaal omdat het de ontbrekende waarde voor u creëert:
from collections import defaultdict
orders = [("Asha", 1200), ("Ben", 300), ("Asha", 800)]
by_customer = defaultdict(list)
for name, total in orders:
by_customer[name].append(total)
print(dict(by_customer))
# {'Asha': [1200, 800], 'Ben': [300]}
Zonder dit zou u moeten controleren of elke sleutel bestaat voordat u deze toevoegt. Deze zelfde patronen werken goed voor het aggregeren van API-gegevens of logregels. Wanneer een woordenboek leeg is of een sleutel ontbreekt, laat onze gids voor Python-uitzonderingsafhandeling zien hoe u met de resulterende problemen omgaat KeyError.
Geneste gegevens en de kopieerval
JSON verwijst rechtstreeks naar geneste woordenboeken en lijsten, zodat u vaak sleutels aan elkaar moet koppelen. Chaining get() houdt dit veilig als er een niveau ontbreekt:
response = {"user": {"profile": {"city": "Pune"}}}
response["user"]["profile"]["city"] # 'Pune'
response.get("user", {}).get("settings", {}).get("theme") # None
Wees voorzichtig bij het kopiëren van geneste gegevens. copy() dupliceert alleen het hoogste niveau, zodat de interne woordenboeken gedeeld blijven met het origineel:
settings = {"db": {"host": "localhost"}}
shallow = settings.copy()
shallow["db"]["host"] = "prod"
print(settings["db"]["host"])
# prod
Als u de kopie wijzigt, wordt het origineel gewijzigd, wat een vervelende bug kan zijn. Gebruik copy.deepcopy(settings) om een volledig onafhankelijke kopie te krijgen.
Wat kan een woordenboeksleutel zijn?
Sleutels moeten hashbaar zijn, wat over het algemeen onveranderlijk betekent. Tekenreeksen, getallen en tupels van onveranderlijke waarden werken allemaal. Lijsten en woordenboeken doen niet:
{["a"]: 1}
# TypeError: unhashable type: 'list'
De reden is dat de hash van een sleutel bepaalt waar de waarde ervan wordt opgeslagen. Als een sleutel zou kunnen veranderen, zou Python deze niet langer kunnen vinden. Als je een samengestelde sleutel nodig hebt, gebruik dan een tuple, zoals {("Pune", 2026): 120}.
Veel voorkomende fouten
- Gebruik vierkante haakjes op optionele sleutels. Reik naar
get()als een sleutel mogelijk ontbreekt. - Ervan uitgaande dat
get()betekent dat de sleutel bestaat.Nonekan betekenen dat de sleutel ontbreekt, of dat er een opgeslagenNoneis. Gebruikinals het verschil ertoe doet. - Met behulp van een veranderlijke standaard.
dict.fromkeys(names, [])krijgt elke sleutel precies dezelfde lijst. Gebruik in plaats daarvan een begrip. - Grootte wijzigen tijdens iteratie. Loop over een kopie van de sleutels.
- Een dictaat gebruiken voor vaste, bekende velden. Een
dataclasskan duidelijker zijn en vangt typefouten op in veldnamen.
Tot slot
Woordenboeken belonen een beetje oefening. Onthoud get() voor optionele toetsen, items() voor loops, en Counter en defaultdict voor de twee meest voorkomende taken. Om te oefenen, neemt u een klein JSON-bestand en schrijft u code om de records ervan te tellen en te groeperen. Als je nieuw bent in de taal, begin dan met onze Python-tutorial voor beginners.
Veelgestelde vragen
Wat is een woordenboek in Python?
Een woordenboek is een ingebouwde verzameling waarin sleutel- en waardeparen worden opgeslagen. U zoekt een waarde op aan de hand van de sleutel, wat snel is, zelfs bij een grote hoeveelheid gegevens.
Zijn Python-woordenboeken geordend?
Ja. Sinds Python 3.7 behouden woordenboeken gegarandeerd de volgorde waarin de sleutels zijn ingevoegd. Het bijwerken van een bestaande sleutel verandert de positie ervan niet.
Wat is het verschil tussen get() en vierkante haakjes?
Vierkante haakjes verhogen KeyError wanneer een sleutel ontbreekt. get() retourneert Geen, of een standaard die u opgeeft, dus het past bij sleutels die optioneel zijn.
Kan een woordenboek dubbele sleutels hebben?
Nee. Elke sleutel is uniek. Door toe te wijzen aan een bestaande sleutel wordt de waarde ervan vervangen, en als een letterlijke sleutel een sleutel herhaalt, wint de laatste waarde.
Hoe voeg ik twee woordenboeken samen in Python?
Gebruik een | b op Python 3.9 of hoger, of {**a, **b} op oudere versies. Beiden bouwen een nieuw woordenboek, en waarden uit b winnen als sleutels botsen.
Blijf leren
Hulp nodig met testen, WordPress of SEO?
We helpen teams betere software te leveren en hun sites te laten groeien. Vertel ons waar u mee bezig bent en wij stellen een duidelijke volgende stap voor.
Meer handleidingen over testen, AI en moderne ontwikkeling
Genoten van dit artikel? Kies een onderwerp en ga direct naar onze nieuwste tutorials.
AI-hallucinaties uitgelegd: waarom taalmodellen dingen verzinnen en hoe ze te verminderen
AI-hallucinaties uitgelegd: wat ze zijn, waarom taalmodellen ze produceren, veelvoorkomende typen, hoe je ze kunt verminderen met aarding en aanwijz…
Lees artikel →DevOpsOmgevingsvariabelen uitgelegd: .env-bestanden, geheimen en configuratie goed gedaan
Omgevingsvariabelen uitgelegd met Python-voorbeelden die we hebben uitgevoerd: ze lezen en instellen, waarom elke waarde een string is, .env-bestand…
Lees artikel →SoftwareontwikkelingAPI-snelheidsbeperking uitgelegd: algoritmen, headers en afhandeling van 429-fouten
API-snelheidsbeperking uitgelegd met een simulatie die we hebben uitgevoerd: token-bucket, vast venster, schuifvenster, 429 reacties, headers van sn…
Lees artikel →TestautomatiseringSpotten in Python: unittest.mock, patch en de fouten die tests doen liegen
Spotten in Python met unittest.mock, getest: Mock en return_value, side_effect, patchen waar een naam wordt gebruikt, spec en autospec, spotdatums e…
Lees artikel →SoftwaretestenCodedekking uitgelegd: lijn versus filiaaldekking en wat 100% werkelijk betekent
Codedekking uitgelegd met een echte dekking.py-run: dekking van lijnen, vertakkingen en condities, een rapport lezen, waarom 100% dekking nog steeds…
Lees artikel →Databases & SQLDELETE versus TRUNCATE versus DROP in SQL: verschillen, terugdraaien en wanneer elk te gebruiken
DELETE versus TRUNCATE versus DROP uitgelegd met geteste SQL: wat elk verwijdert, terugdraaien, triggers, identiteitsreset, snelheid en hoe PostgreS…
Lees artikel →Databases & SQLSQL-weergaven uitgelegd: creëer, gebruik en vermijd de valkuilen, met voorbeelden
SQL-weergaven uitgelegd met query's die we hebben uitgevoerd: een weergave maken, live resultaten, kolommen verbergen, prestaties, bijwerkbare en ge…
Lees artikel →SoftwareontwikkelingTypeScript-interface versus type: echte verschillen, getest met de compiler
TypeScript-interface versus type, gecontroleerd met de echte compiler: wat beide kunnen doen, wat slechts één kan doen, samenvoegen van declaraties,…
Lees artikel →SoftwareontwikkelingPython *args en **kwargs uitgelegd: flexibele functies met duidelijke voorbeelden
Python *args en **kwargs uitgelegd met code die we hebben uitgevoerd: in- en uitpakken, parametervolgorde, argumenten die alleen trefwoorden en posi…
Lees artikel →SoftwareontwikkelingPython Lambda-functies: syntaxis, echt gebruik en wanneer u ze niet moet gebruiken
Python lambda-functies uitgelegd met code die we hebben uitgevoerd: syntaxis, sorteren met sleutel, kaart en filter, sluitingen, de laat-bindende va…
Lees artikel →Kunstmatige intelligentieWat zijn AI-agenten? Hoe ze werken, met een eenvoudige agentloop die u kunt uitvoeren
Wat zijn AI-agenten? Een duidelijke gids voor de agentenlus, tools, geheugen en vangrails, met een kleine Python-lus die we hebben uitgevoerd, echte…
Lees artikel →DevOpsMonitoring versus waarneembaarheid: het echte verschil, met logboeken, statistieken en sporen
Monitoring versus waarneembaarheid uitgelegd: bekende en onbekende fouten, logboeken, statistieken en sporen, een walkthrough voor afrekenincidenten…
Lees artikel →DevOpsDocker-volumes versus bindingsmounts: bewaar containergegevens op de juiste manier
Docker-volumes versus bind-mounts uitgelegd: waarom containergegevens verdwijnen, benoemde volumes, bind-mounts, tmpfs, Compose-voorbeelden, back-up…
Lees artikel →TestautomatiseringTDD versus BDD: belangrijkste verschillen, één functie die op beide manieren is gebouwd en wanneer deze moet worden gebruikt
TDD versus BDD uitgelegd met één kortingsfunctie die in beide richtingen is gebouwd: rood-groen-refactor met code die we hebben uitgevoerd, gegeven-…
Lees artikel →SoftwaretestenGebruikersacceptatietesten (UAT): proces, checklist en echte voorbeelden
Gebruikersacceptatietesten uitgelegd: wie voert het uit, hoe het verschilt van QA, een proces in zeven stappen, een UAT-testcase-sjabloon, een check…
Lees artikel →Databases & SQLSQL NULL-waarden uitgelegd: IS NULL, COALESCE, NULLIF en de te vermijden vallen
SQL NULL-waarden uitgelegd met query's die we hebben uitgevoerd: logica met drie waarden, IS NULL, COALESCE, NULLIF, hoe aggregaten, joins en sorter…
Lees artikel →Databases & SQLSQL CASE WHEN-instructie: syntaxis, echte voorbeelden en veelvoorkomende fouten
SQL CASE WHEN uitgelegd met vragen die we hebben uitgevoerd: eenvoudige en doorzochte formulieren, volgorde van de voorwaarden, draaipunten met SUM,…
Lees artikel →SoftwareontwikkelingWat is JWT? JSON-webtokens uitgelegd met een werkend voorbeeld
Wat is JWT? JSON Web Tokens uitgelegd: de drie delen, een token gebouwd en waarmee is geknoeid in de code die we hebben uitgevoerd, JWT versus sessi…
Lees artikel →SoftwareontwikkelingJavaScript-gebeurtenislus uitgelegd: call-stack, microtaken en timers met voorbeelden
De JavaScript-gebeurtenislus uitgelegd met code die we hebben uitgevoerd: call-stack, taak- en microtask-wachtrijen, waarom setTimeout 0 niet onmidd…
Lees artikel →SoftwareontwikkelingPython-generatoren en opbrengst uitgelegd: bespaar geheugen met echte voorbeelden
Python-generatoren en opbrengst uitgelegd met code die we hebben uitgevoerd: hoe ze pauzeren en hervatten, gemeten geheugenbesparingen, pijplijnen, …
Lees artikel →Kunstmatige intelligentieWat zijn inbeddingen? Vectoren en cosinusovereenkomst eenvoudig uitgelegd
Wat zijn insluitingen? Een gids in duidelijke taal over vectoren, cosinusovereenkomst en semantisch zoeken, met een klein voorbeeld dat we hebben ui…
Lees artikel →DevOpsImplementatie van blauwgroen versus kanarie: verschillen, afwegingen en hoe te kiezen
Blauw-groen versus kanarie-implementatie uitgelegd: hoe elk werkt, kosten, risico's en terugdraaien, stabiele gebruikersbucket die we hebben getest,…
Lees artikel →TestautomatiseringSchilferige tests: wat de oorzaak ervan is en hoe u ze voorgoed kunt oplossen
Zwakke tests uitgelegd met demo's die we hebben uitgevoerd: de belangrijkste oorzaken, hoe je er een kunt bevestigen en diagnosticeren, goede oploss…
Lees artikel →SoftwaretestenBelastingtesten versus stresstesten: verschillen, statistieken en k6-voorbeelden
Belastingtesten versus stresstesten uitgelegd: wat elk bewijst, piek- en soak-tests, de statistieken die er toe doen, waarom gemiddelden misleiden, …
Lees artikel →SoftwaretestenTestcase versus testscenario: belangrijkste verschillen, voorbeelden en wanneer deze te gebruiken
Testcase versus testscenario uitgelegd: duidelijke definities, een tabel naast elkaar, één functie voor het opnieuw instellen van wachtwoorden, over…
Lees artikel →Databases & SQLOptimalisatie van SQL-query's: lees uitvoeringsplannen en repareer langzame query's, met timing
Optimalisatie van SQL-query's getest op een miljoen rijen: lees uitvoeringsplannen, voeg de juiste indexen toe, repareer niet-sargeerbare filters, g…
Lees artikel →Databases & SQLSQL UNION versus UNION ALL: verschillen, voorbeelden en geteste prestaties
SQL UNION versus UNION ALL uitgelegd met de query's die we hebben uitgevoerd: duplicaten, de regels volgen beide, een echte databug, gemeten prestat…
Lees artikel →SoftwareontwikkelingJavaScript Fetch API-tutorial: GET, POST, foutafhandeling en time-outs
Een JavaScript Fetch API-tutorial getest tegen een lokale server: GET en POST, waarom 404 niet gooit, een herbruikbare helper, queryreeksen, time-ou…
Lees artikel →SoftwareontwikkelingPython-bestandsverwerking: lezen, schrijven, CSV, JSON en pathlib met voorbeelden
Het verwerken van Python-bestanden uitgelegd met code die we hebben uitgevoerd: open modi, met het lezen van grote bestanden, CSV, JSON, pathlib, bi…
Lees artikel →SoftwareontwikkelingPython-klassen en -objecten: OOP-zelfstudie met echte voorbeelden
Python-klassen en -objecten uitgelegd met code die we hebben uitgevoerd: __init__, methoden, klasse versus instantie-attributen, overerving, eigensc…
Lees artikel →Kunstmatige intelligentieWat is een groot taalmodel? Hoe LLM's werken, uitgelegd zonder de hype
Wat is een groot taalmodel? LLM's uitgelegd in duidelijke taal: tokens, inbedding, aandacht, training, temperatuur- en contextvensters, een kleine d…
Lees artikel →DevOpsLinux-opdrachten voor beginners: de essentiële terminalgids met voorbeelden
Linux-opdrachten voor beginners, gegroepeerd op taak: navigatie, bestanden, logboeken bekijken, grep, pipelines, machtigingen, processen en archieve…
Lees artikel →TestautomatiseringSelenium versus toneelschrijver: belangrijkste verschillen, code vergeleken en welke te kiezen
Selenium versus Playwright vergeleken: architectuur, wachten, browser- en taalondersteuning, debuggen, dezelfde test in beide tools, migratieadvies …
Lees artikel →SoftwaretestenEquivalentiepartitionering: testontwerptechniek uitgelegd met uitgewerkte voorbeelden
Equivalentiepartitionering uitgelegd: hoe je geldige en ongeldige partities kunt vinden, uitgewerkte voorbeelden voor leeftijden, wachtwoorden en ko…
Lees artikel →SoftwaretestenErnst versus prioriteit bij het testen van software: verschillen, matrix en echte voorbeelden
Ernst versus prioriteit bij het testen van software uitgelegd: duidelijke definities, een vierwegmatrix met voorbeelden, niveauschalen, wie deze bep…
Lees artikel →Databases & SQLTutorial voor SQL-subquery's: typen, gecorreleerde subquery's en BESTAAN met voorbeelden
Een SQL-subquery-tutorial met query's die we hebben uitgevoerd: scalaire, IN-, FROM- en SELECT-subquery's, gecorreleerde subquery's, EXISTS, de NOT …
Lees artikel →Databases & SQLSQL-transacties en ACID uitgelegd: COMMIT-, ROLLBACK- en isolatieniveaus
SQL-transacties en ACID uitgelegd met een bankoverschrijving die we hebben uitgevoerd: COMMIT, ROLLBACK, savepoints, locks, isolatieniveaus, dirty r…
Lees artikel →SoftwareontwikkelingGit Commands Cheat Sheet: de commando's die je daadwerkelijk gebruikt, met voorbeelden
Een spiekbriefje voor Git-opdrachten, gegroepeerd op taak: setup, staging, branches, remotes, stash, geschiedenis en fouten ongedaan maken, met uitv…
Lees artikel →SoftwareontwikkelingJavaScript-beloften uitgelegd: vervolgens catch, Promise.all en veelvoorkomende fouten
JavaScript-beloften uitgelegd met code die we hebben uitgevoerd: staten, dan en catch-ketens, foutafhandeling, Promise.all, allSettled, race en wat …
Lees artikel →SoftwareontwikkelingZelfstudie Python-woordenboek: methoden, voorbeelden en veelvoorkomende patronen
Een Python-woordenboektutorial met code die we hebben uitgevoerd: dictaten, sleutelmethoden, samenvoeg-, begrips-, tel- en groeperingspatronen en ve…
Lees artikel →Kunstmatige intelligentieWat is RAG? Retrieval-Augmented Generation uitgelegd met een werkend voorbeeld
Wat is RAG? Retrieval-augmented generatie stap voor stap uitgelegd: indexeren, chunken, insluiten, ophalen, een klein werkend Python-voorbeeld, eval…
Lees artikel →DevOpsTerraform-zelfstudie voor beginners: infrastructuur als code van het eerste bestand tot modules
Een Terraform-tutorial voor beginners: begin zonder cloudaccount, leer init, plan en pas toe, vervolgens variabelen, outputs, status, modules en een…
Lees artikel →DevOpsDocker versus Kubernetes: belangrijkste verschillen, hoe ze samenwerken en welke u nodig heeft
Docker vs Kubernetes legde uit: wat elk doet, dezelfde app draait met beide, Docker Compose en Swarm vergeleken, de dockershim veranderen en hoe je …
Lees artikel →TestautomatiseringPytest-tutorial voor beginners: armaturen, parametriseren en echte voorbeelden
Een pytest-tutorial voor beginners met tests die we hebben uitgevoerd op pytest 9.2: beweringen, armaturen, parametrize, conftest, markers, tmp_path…
Lees artikel →SoftwaretestenLevenscyclus van softwaretests (STLC): 6 fasen, in- en uitgangscriteria, voorbeeld
De levenscyclus van softwaretesten uitgelegd: zes STLC-fasen met in- en uitstapcriteria, deliverables, een voorbeeld van een uitgewerkte inlogfuncti…
Lees artikel →SoftwareontwikkelingGit merge vs rebase: verschillen, voorbeelden en wanneer je wat gebruikt
Git merge vs rebase uitgelegd met echte logoutput, een vergelijkingstabel, de gouden regel van rebase en een veilige teamwerkwijze.
Lees artikel →SoftwareontwikkelingPython list comprehension: syntaxis, voorbeelden en wanneer je het vermijdt
Python list comprehension uitgelegd: syntaxis, filteren, if-else, geneste lussen, gemeten tijden en wanneer een gewone for-lus beter is.
Lees artikel →Databases & SQLSQL JOIN uitgelegd met voorbeelden (Inner, Left, Right, Full)
Begrijp SQL joins stap voor stap met voorbeeldtabellen en queries: INNER, LEFT, RIGHT, FULL, CROSS en SELF, plus veelgemaakte fouten en prestatietips.
Lees artikel →