Tutorial zum Python-Wörterbuch: Methoden, Beispiele und gängige Muster
Wörterbücher gibt es überall in Python, von JSON-Antworten bis zur Konfiguration. Erfahren Sie, wie Sie sie erstellen, lesen und aktualisieren und lernen Sie dann die Zähl-, Gruppierungs- und Zusammenführungsmuster kennen, die Sie in realen Projekten verwenden werden.
- Ein Python-Wörterbuch speichert Schlüssel-Wert-Paare und sucht sehr schnell nach einem Wert anhand seines Schlüssels.
- Verwenden Sie
get(), wenn ein Schlüssel fehlt, da eckige KlammernKeyErrorhervorrufen. - Schlüssel müssen hashbar sein, z. B. Zeichenfolgen, Zahlen oder Tupel. Listen können keine Schlüssel sein.
copy()ist flach, daher bleiben verschachtelte Daten gemeinsam genutzt, es sei denn, Sie verwendendeepcopy.
Wenn eine Liste eine Reihe nummerierter Felder ist, ist ein Python-Wörterbuch eine Reihe beschrifteter Felder. Sie fragen nach dem Namen und nicht nach der Position, was Sie wollen, weshalb Wörterbücher hinter JSON-Daten, Konfiguration, Caches und einem Großteil von Python selbst stehen.
Dieses Tutorial beginnt mit den Grundlagen und geht dann zu den Mustern über, die erfahrene Entwickler täglich verwenden. Wir haben alle Beispiele auf Python 3.13 ausgeführt und die angezeigte Ausgabe stammt von diesem Lauf.
Was ist ein Wörterbuch?
Ein Wörterbuch oder dict ordnet Schlüssel Werten zu. Jeder Schlüssel erscheint nur einmal und die Werte können beliebig sein, einschließlich Listen oder anderen Wörterbüchern.
| Typ | Zugriff durch | Bestellt | Duplikate | Am besten für |
|---|---|---|---|---|
Liste |
Position | Ja | Erlaubt | Sequenzen |
Tupel |
Position | Ja | Erlaubt | Feste Datensätze |
eingestellt |
Nur Mitgliedschaft | Nein | Nicht erlaubt | Unikate |
dict |
Schlüssel | Einfügungsauftrag | Schlüssel sind einzigartig | Nach Namen suchen |
Seit Python 3.7 behalten Wörterbücher offiziell die Einfügereihenfolge bei. Viele ältere Tutorials nennen sie immer noch ungeordnet, was nicht mehr stimmt. Für einen umfassenderen Vergleich der anderen Typen siehe Python-Liste vs. Tupel vs. Set.
Suchvorgänge sind schnell, da Wörterbücher eine Hash-Tabelle verwenden. Die Überprüfung eines Schlüssels nimmt ungefähr die gleiche Zeit in Anspruch, unabhängig davon, ob das Wörterbuch zehn oder eine Million Einträge enthält, wohingegen die Suche in einer Liste langsamer wird, je größer sie wird.
Erstellen Sie ein Wörterbuch
user = {"name": "Asha", "age": 31, "city": "Pune"}
empty = {}
from_keywords = dict(name="Asha", age=31)
from_pairs = dict([("a", 1), ("b", 2)])
Die häufigste Form sind geschweifte Klammern. Eine Falle: {} erstellt ein leeres Wörterbuch, keine leere Menge. Für eine leere Menge benötigen Sie set().
Werte sicher ablesen
Es gibt zwei Möglichkeiten, einen Wert zu lesen, und der Unterschied ist wichtig, wenn ein Schlüssel möglicherweise nicht vorhanden ist:
user["name"] # 'Asha'
user["email"] # KeyError: 'email'
user.get("email") # None
user.get("email", "not set") # 'not set'
Verwenden Sie eckige Klammern, wenn der Schlüssel vorhanden sein muss, damit ein fehlender Schlüssel laut versagt. Verwenden Sie get(), wenn Abwesenheit normal ist, beispielsweise als optionales Feld in einer API-Antwort. Um nach einem Schlüssel zu suchen, verwenden Sie den Operator in, der nach Schlüsseln und nicht nach Werten sucht:
"city" in user # True
"Pune" in user # False
Hinzufügen, aktualisieren und entfernen
Durch die Zuweisung zu einem Schlüssel wird dieser aktualisiert, falls vorhanden, oder hinzugefügt, wenn dies nicht der Fall ist:
user["age"] = 32
user["email"] = "asha@example.com"
print(user)
# {'name': 'Asha', 'age': 32, 'city': 'Pune', 'email': 'asha@example.com'}
Python bietet mehrere Möglichkeiten zum Entfernen von Elementen:
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
Verwenden Sie pop(), wenn Sie den Wert zurückhaben möchten. Durch die Übergabe eines Standardwerts als zweites Argument wird ein Fehler vermieden, wenn der Schlüssel nicht vorhanden ist. popitem() entfernt das zuletzt hinzugefügte Paar und gibt es zurück.
Durchlaufen Sie ein Wörterbuch
Durch direktes Schleifen erhalten Sie die Schlüssel. Um sowohl Schlüssel als auch Werte zu erhalten, verwenden Sie items():
user = {"name": "Asha", "age": 32}
for key, value in user.items():
print(key, "=", value)
# name = Asha
# age = 32
keys(), values() und items() geben Live-Ansichten statt Kopien zurück, sodass sie spätere Änderungen widerspiegeln. Fügen Sie keine Schlüssel hinzu oder entfernen Sie sie, während Sie ein Wörterbuch durchlaufen, da Python eine RuntimeError auslöst. Machen Sie bei Bedarf eine Schleife über list(user).
Tipp: Die in Prüfung eines Wörterbuchs ist schnell, aber "Pune" in user.values() muss jeden Wert scannen. Wenn Sie dies häufig bei großen Datenmengen tun, ist Ihr Wörterbuch möglicherweise falsch eingegeben.
Spickzettel für Wörterbuchmethoden
| Methode | Was es bewirkt |
|---|---|
get(k, Standard) |
Gibt einen Wert oder den Standardwert zurück, wenn der Schlüssel fehlt |
keys() |
Gibt eine Ansicht der Schlüssel zurück |
values() |
Gibt eine Ansicht der Werte zurück |
items() |
Gibt eine Ansicht von Schlüssel- und Wertpaaren zurück |
update(other) |
Fügt ein anderes Wörterbuch hinzu oder überschreibt es |
pop(k, Standard) |
Entfernt einen Schlüssel und gibt seinen Wert zurück |
popitem() |
Entfernt das zuletzt hinzugefügte Paar und gibt es zurück |
setdefault(k, v) |
Gibt den Wert zurück und fügt zuerst v ein, wenn der Schlüssel fehlt |
copy() |
Gibt eine flache Kopie zurück |
clear() |
Entfernt alles |
dict.fromkeys(keys, v) |
Erstellt ein Wörterbuch aus einer Liste von Schlüsseln |
Wörterbücher zusammenführen
Ein häufiger Bedarf besteht darin, Benutzereinstellungen zusätzlich zu den Standardeinstellungen anzuwenden. Wenn die Tasten aufeinanderprallen, gewinnt die rechte Seite:
defaults = {"theme": "light", "lang": "en"}
saved = {"theme": "dark"}
defaults | saved
{**defaults, **saved}
# Both give: {'theme': 'dark', 'lang': 'en'}
Der Operator | benötigt Python 3.9 oder höher, während die Version ** auch auf älteren Versionen funktioniert. Beide erstellen ein neues Wörterbuch. Im Gegensatz dazu ersetzen defaults.update(saved) und defaults |= saved defaults an der Stelle.
Verständnis und Sortierung
Wörterbuchverständnisse erstellen ein neues Wörterbuch in einer einzigen lesbaren Zeile, genau wie Listenverständnisse dies für Listen tun:
prices = {"pen": 10, "book": 250, "bag": 900}
{k: v for k, v in prices.items() if v > 100}
# {'book': 250, 'bag': 900}
Um nach Wert zu sortieren, übergeben Sie eine key-Funktion an sorted(). Um den Schlüssel mit dem größten Wert zu finden, verwenden Sie max():
sorted(prices.items(), key=lambda item: item[1], reverse=True)
# [('bag', 900), ('book', 250), ('pen', 10)]
max(prices, key=prices.get)
# 'bag'
Ein Wörterbuch hat keine Methode sort() und sorted() gibt eine Liste von Paaren zurück. Schließen Sie das Ergebnis in dict() ein, wenn Sie ein Wörterbuch in dieser Reihenfolge wünschen.
Zähl- und Gruppierungsmuster
Es tauchen ständig zwei Aufgaben auf. Das erste ist das Zählen, was Sie mit get() mit einem Standardwert von Null durchführen können:
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}
Die Standardbibliothek macht dies mit Counter noch kürzer:
from collections import Counter
Counter(words).most_common(2)
# [('to', 2), ('be', 2)]
Die zweite Möglichkeit ist die Gruppierung, und defaultdict ist hier ideal, da sie den fehlenden Wert für Sie erstellt:
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]}
Ohne sie müssten Sie vor dem Anhängen prüfen, ob jeder Schlüssel vorhanden ist. Dieselben Muster eignen sich gut zum Aggregieren von API-Daten oder Protokollzeilen. Wenn ein Wörterbuch leer ist oder ein Schlüssel fehlt, zeigt unser Leitfaden zur Python-Ausnahmebehandlung, wie mit der resultierenden Ausnahme umgegangen wird KeyError.
Verschachtelte Daten und die Kopierfalle
JSON wird direkt auf verschachtelte Wörterbücher und Listen abgebildet, sodass Sie häufig Schlüssel verketten. Durch die Verkettung get() bleibt dies sicher, wenn ein Level fehlt:
response = {"user": {"profile": {"city": "Pune"}}}
response["user"]["profile"]["city"] # 'Pune'
response.get("user", {}).get("settings", {}).get("theme") # None
Seien Sie vorsichtig, wenn Sie verschachtelte Daten kopieren. copy() dupliziert nur die oberste Ebene, sodass innere Wörterbücher mit dem Original geteilt bleiben:
settings = {"db": {"host": "localhost"}}
shallow = settings.copy()
shallow["db"]["host"] = "prod"
print(settings["db"]["host"])
# prod
Durch das Ändern der Kopie wurde das Original verändert, was ein schwerwiegender Fehler sein kann. Verwenden Sie copy.deepcopy(settings), um eine völlig unabhängige Kopie zu erhalten.
Was kann ein Wörterbuchschlüssel sein?
Schlüssel müssen hashbar sein, was im Allgemeinen unveränderlich bedeutet. Zeichenfolgen, Zahlen und Tupel unveränderlicher Werte funktionieren alle. Listen und Wörterbücher tun Folgendes nicht:
{["a"]: 1}
# TypeError: unhashable type: 'list'
Der Grund dafür ist, dass der Hash eines Schlüssels darüber entscheidet, wo sein Wert gespeichert wird. Wenn sich ein Schlüssel ändern könnte, könnte Python ihn nicht mehr finden. Wenn Sie einen zusammengesetzten Schlüssel benötigen, verwenden Sie ein Tupel wie {("Pune", 2026): 120}.
Häufige Fehler
- Verwenden Sie eckige Klammern für optionale Schlüssel. Greifen Sie nach
get(), wenn ein Schlüssel möglicherweise fehlt. - Angenommen,
get()bedeutet, dass der Schlüssel vorhanden ist.Nonekönnte bedeuten, dass er fehlt oder gespeichert istNone. Verwenden Siein, wenn der Unterschied wichtig ist. - Verwendung eines veränderlichen Standardwerts.
dict.fromkeys(names, [])Gibt jedem Schlüssel die gleiche Liste. Verwenden Sie stattdessen ein Verständnis. - Größe während der Iteration ändern. Schleife über eine Kopie der Schlüssel.
- Verwendung eines Diktats für feste, bekannte Felder. Ein
dataclasskann klarer sein und erkennt Tippfehler in Feldnamen.
Fazit
Wörterbücher belohnen ein wenig Übung. Denken Sie an get() für optionale Schlüssel, items() für Schleifen und Counter und defaultdict für die beiden häufigsten Aufgaben. Nehmen Sie zum Üben eine kleine JSON-Datei und schreiben Sie Code, um die Datensätze zu zählen und zu gruppieren. Wenn Sie neu in der Sprache sind, beginnen Sie mit unserem Python-Tutorial für Anfänger.
Häufige Fragen
Was ist ein Wörterbuch in Python?
Ein Wörterbuch ist eine integrierte Sammlung, die Schlüssel-Wert-Paare speichert. Sie suchen einen Wert anhand seines Schlüssels, was selbst bei großen Datenmengen schnell geht.
Sind Python-Wörterbücher geordnet?
Ja. Seit Python 3.7 wird garantiert, dass Wörterbücher die Reihenfolge beibehalten, in der Schlüssel eingefügt wurden. Durch das Aktualisieren eines vorhandenen Schlüssels wird dessen Position nicht geändert.
Was ist der Unterschied zwischen get() und eckigen Klammern?
Eckige Klammern lösen KeyError aus, wenn ein Schlüssel fehlt. get() gibt „None“ oder einen von Ihnen bereitgestellten Standardwert zurück, sodass es für optionale Schlüssel geeignet ist.
Kann ein Wörterbuch doppelte Schlüssel haben?
Nein. Jeder Schlüssel ist einzigartig. Durch die Zuweisung zu einem vorhandenen Schlüssel wird dessen Wert ersetzt. Wenn ein Literal einen Schlüssel wiederholt, gewinnt der letzte Wert.
Wie füge ich zwei Wörterbücher in Python zusammen?
Verwenden Sie ein | b auf Python 3.9 oder höher oder {**a, **b} auf älteren Versionen. Beide erstellen ein neues Wörterbuch und Werte aus b gewinnen, wenn Schlüssel kollidieren.
Lerne weiter
Benötigen Sie Hilfe beim Testen, WordPress oder SEO?
Wir helfen Teams, bessere Software zu liefern und ihre Websites zu erweitern. Sagen Sie uns, woran Sie gerade arbeiten, und wir schlagen Ihnen einen klaren nächsten Schritt vor.
Weitere Anleitungen finden Sie unter Tests, KI und moderne Entwicklung
Hat Ihnen dieser Artikel gefallen? Wählen Sie ein Thema und springen Sie direkt in unsere neuesten Tutorials.
KI-Halluzinationen erklärt: Warum Sprachmodelle Dinge erfinden und wie man sie reduziert
KI-Halluzinationen erklärt: Was sie sind, warum Sprachmodelle sie produzieren, gängige Typen, wie man sie mit Erdung und Eingabeaufforderungen reduz…
Artikel lesen →DevOpsErklärte Umgebungsvariablen: .env-Dateien, Geheimnisse und Konfiguration richtig gemacht
Umgebungsvariablen anhand von Python-Beispielen erklärt, die wir ausgeführt haben: Sie lesen und festlegen, warum jeder Wert ein String ist, .env-Da…
Artikel lesen →SoftwareentwicklungAPI-Ratenbegrenzung erklärt: Algorithmen, Header und Behandlung von 429-Fehlern
API-Ratenbegrenzung anhand einer von uns durchgeführten Simulation erklärt: Token-Bucket, festes Fenster, gleitendes Fenster, 429 Antworten, Ratenbe…
Artikel lesen →TestautomatisierungSpott in Python: unittest.mock, Patch und die Fehler, die Tests zum Lügen machen
Mocking in Python mit unittest.mock, getestet: Mock und return_value, side_effect, Patchen, wo ein Name verwendet wird, Spezifikation und Autospec, …
Artikel lesen →SoftwaretestsCode-Abdeckung erklärt: Leitungs- und Zweigstellenabdeckung und was 100 % wirklich bedeutet
Erklärung der Codeabdeckung anhand eines echten Coverage.py-Laufs: Zeilen-, Zweig- und Bedingungsabdeckung, Lesen eines Berichts, warum bei 100 % Ab…
Artikel lesen →Datenbanken & SQLDELETE vs. TRUNCATE vs. DROP in SQL: Unterschiede, Rollback und Verwendungszweck
DELETE vs. TRUNCATE vs. DROP erklärt mit getestetem SQL: was jeweils entfernt wird, Rollback, Trigger, Identitätsrücksetzung, Geschwindigkeit und wi…
Artikel lesen →Datenbanken & SQLErklärte SQL-Ansichten: Erstellen, nutzen und vermeiden Sie Fallstricke mit Beispielen
SQL-Ansichten anhand der von uns ausgeführten Abfragen erklärt: Erstellen einer Ansicht, Live-Ergebnisse, Ausblenden von Spalten, Leistung, aktualis…
Artikel lesen →SoftwareentwicklungTypeScript-Schnittstelle vs. Typ: Echte Unterschiede, getestet mit dem Compiler
TypeScript-Schnittstelle vs. Typ, überprüft mit dem echten Compiler: Was beide können, was nur einer kann, Deklarationszusammenführung, Erweiterunge…
Artikel lesen →SoftwareentwicklungPython *args und **kwargs erklärt: Flexible Funktionen mit klaren Beispielen
Python *args und **kwargs erklärt mit Code, den wir ausgeführt haben: Packen und Entpacken, Parameterreihenfolge, Nur-Schlüsselwort- und Nur-Positio…
Artikel lesen →SoftwareentwicklungPython-Lambda-Funktionen: Syntax, tatsächliche Verwendung und wann man sie nicht verwendet
Python-Lambda-Funktionen erklärt mit Code, den wir ausgeführt haben: Syntax, Sortierung mit Schlüssel, Karte und Filter, Abschlüsse, die Late-Bindin…
Artikel lesen →Künstliche IntelligenzWas sind KI-Agenten? Wie sie funktionieren, mit einer einfachen Agentenschleife, die Sie ausführen können
Was sind KI-Agenten? Eine einfache Anleitung zur Agentenschleife, zu Tools, Speicher und Leitplanken, mit einer kleinen Python-Schleife, die wir aus…
Artikel lesen →DevOpsÜberwachung vs. Beobachtbarkeit: Der wahre Unterschied, mit Protokollen, Metriken und Traces
Überwachung vs. Beobachtbarkeit erklärt: bekannte und unbekannte Fehler, Protokolle, Metriken und Spuren, eine exemplarische Vorgehensweise für Chec…
Artikel lesen →DevOpsDocker-Volumes vs. Bind Mounts: Containerdaten auf die richtige Art und Weise beibehalten
Docker-Volumes vs. Bind-Mounts erklärt: Warum Containerdaten verschwinden, benannte Volumes, Bind-Mounts, tmpfs, Compose-Beispiele, Backups, Berecht…
Artikel lesen →TestautomatisierungTDD vs. BDD: Hauptunterschiede, eine Funktion, die auf beide Arten entwickelt wurde und wann sie jeweils verwendet werden sollte
TDD vs. BDD erklärt mit einer Rabattfunktion, die in beide Richtungen aufgebaut ist: Rot-Grün-Refaktor mit Code, den wir ausgeführt haben, Gegeben-W…
Artikel lesen →SoftwaretestsBenutzerakzeptanztests (UAT): Prozess, Checkliste und reale Beispiele
Benutzerakzeptanztests erklärt: Wer führt ihn durch, wie unterscheidet er sich von der Qualitätssicherung, ein siebenstufiger Prozess, eine UAT-Test…
Artikel lesen →Datenbanken & SQLErklärte SQL-NULL-Werte: IS NULL, COALESCE, NULLIF und die zu vermeidenden Fallen
SQL-NULL-Werte, die mit von uns ausgeführten Abfragen erklärt wurden: dreiwertige Logik, IS NULL, COALESCE, NULLIF, wie Aggregate, Joins und Sortier…
Artikel lesen →Datenbanken & SQLSQL CASE WHEN-Anweisung: Syntax, reale Beispiele und häufige Fehler
SQL CASE WHEN anhand der von uns ausgeführten Abfragen erklärt: einfache und durchsuchte Formulare, Bedingungsreihenfolge, Pivots mit SUM, COUNT-Tri…
Artikel lesen →SoftwareentwicklungWas ist JWT? JSON-Web-Tokens anhand eines funktionierenden Beispiels erklärt
Was ist JWT? JSON Web Tokens erklärt: die drei Teile, ein Token, das in dem von uns ausgeführten Code erstellt und manipuliert wurde, JWT vs. Sitzun…
Artikel lesen →SoftwareentwicklungErklärte JavaScript-Ereignisschleife: Aufrufstapel, Mikrotasks und Timer mit Beispielen
Die JavaScript-Ereignisschleife wurde mit dem von uns ausgeführten Code erklärt: Aufrufstapel, Aufgaben- und Mikrotask-Warteschlangen, warum setTime…
Artikel lesen →SoftwareentwicklungErklärung von Python-Generatoren und -Ertrag: Sparen Sie Speicher mit echten Beispielen
Python-Generatoren und Yield anhand des von uns ausgeführten Codes erklärt: wie sie angehalten und fortgesetzt werden, gemessene Speichereinsparunge…
Artikel lesen →Künstliche IntelligenzWas sind Einbettungen? Vektoren und Kosinusähnlichkeit einfach erklärt
Was sind Einbettungen? Ein Leitfaden in einfacher Sprache zu Vektoren, Kosinusähnlichkeit und semantischer Suche, mit einem kleinen Beispiel, das wi…
Artikel lesen →DevOpsBlau-Grün vs. Canary-Bereitstellung: Unterschiede, Kompromisse und Auswahl
Blue-Green vs. Canary-Bereitstellung erklärt: Funktionsweise, Kosten, Risiko und Rollback, stabiles Benutzer-Bucketing, das wir getestet haben, Date…
Artikel lesen →TestautomatisierungFlaky-Tests: Was sie verursacht und wie man sie endgültig behebt
Flaky-Tests wurden anhand von Demos erklärt, die wir durchgeführt haben: die Hauptursachen, wie man sie bestätigt und diagnostiziert, richtige Korre…
Artikel lesen →SoftwaretestsLasttest vs. Stresstest: Unterschiede, Metriken und k6-Beispiele
Erläuterungen zu Lasttests und Stresstests: Was die einzelnen Tests beweisen, Spike- und Soak-Tests, welche Kennzahlen wichtig sind, warum Durchschn…
Artikel lesen →SoftwaretestsTestfall vs. Testszenario: Hauptunterschiede, Beispiele und wann man sie jeweils verwendet
Testfall vs. Testszenario erklärt: klare Definitionen, eine Tabelle nebeneinander, eine Funktion zum Zurücksetzen von Passwörtern, die von Szenarios…
Artikel lesen →Datenbanken & SQLSQL-Abfrageoptimierung: Ausführungspläne lesen und langsame Abfragen mit Zeitvorgaben beheben
An einer Million Zeilen getestete SQL-Abfrageoptimierung: Ausführungspläne lesen, die richtigen Indizes hinzufügen, nicht sargierbare Filter korrigi…
Artikel lesen →Datenbanken & SQLSQL UNION vs. UNION ALL: Unterschiede, Beispiele und getestete Leistung
SQL UNION vs. UNION ALL anhand der von uns ausgeführten Abfragen erklärt: Duplikate, die Regeln, denen beide folgen, ein echter Datenfehler, gemesse…
Artikel lesen →SoftwareentwicklungTutorial zur JavaScript-Abruf-API: GET, POST, Fehlerbehandlung und Zeitüberschreitungen
Ein JavaScript-Abruf-API-Tutorial, das auf einem lokalen Server getestet wurde: GET und POST, warum 404 nicht ausgelöst wird, ein wiederverwendbarer…
Artikel lesen →SoftwareentwicklungUmgang mit Python-Dateien: Lesen, Schreiben, CSV, JSON und Pathlib mit Beispielen
Die Handhabung von Python-Dateien wird anhand des von uns ausgeführten Codes erklärt: Öffnungsmodi, Lesen großer Dateien, CSV, JSON, Pathlib, Binärd…
Artikel lesen →SoftwareentwicklungPython-Klassen und -Objekte: OOP-Tutorial mit echten Beispielen
Python-Klassen und -Objekte erklärt mit Code, den wir ausgeführt haben: __init__, Methoden, Klassen- und Instanzattribute, Vererbung, Eigenschaften,…
Artikel lesen →Künstliche IntelligenzWas ist ein großes Sprachmodell? Wie LLMs funktionieren, ohne großen Hype erklärt
Was ist ein großes Sprachmodell? LLMs im Klartext erklärt: Token, Einbettungen, Aufmerksamkeit, Training, Temperatur- und Kontextfenster, eine klein…
Artikel lesen →DevOpsLinux-Befehle für Anfänger: Der grundlegende Terminal-Leitfaden mit Beispielen
Linux-Befehle für Anfänger, gruppiert nach Aufgaben: Navigation, Dateien, Anzeigen von Protokollen, Grep, Pipes, Berechtigungen, Prozesse und Archiv…
Artikel lesen →TestautomatisierungSelenium vs. Playwright: Hauptunterschiede, Code im Vergleich und welche Sie wählen sollten
Selenium vs. Playwright im Vergleich: Architektur, Wartezeit, Browser- und Sprachunterstützung, Debugging, der gleiche Test in beiden Tools, Migrati…
Artikel lesen →SoftwaretestsÄquivalenzpartitionierung: Testdesigntechnik anhand von Beispielen erklärt
Erklärung der Äquivalenzpartitionierung: Wie man gültige und ungültige Partitionen findet, Beispiele für Alter, Passwörter und Gutscheine, von uns d…
Artikel lesen →SoftwaretestsSchweregrad vs. Priorität beim Softwaretest: Unterschiede, Matrix und reale Beispiele
Schweregrad vs. Priorität beim Softwaretest erklärt: klare Definitionen, eine Vier-Wege-Matrix mit Beispielen, Stufenskalen, wer die einzelnen Punkt…
Artikel lesen →Datenbanken & SQLTutorial zu SQL-Unterabfragen: Typen, korrelierte Unterabfragen und EXISTS mit Beispielen
Ein SQL-Unterabfrage-Tutorial mit Abfragen, die wir ausgeführt haben: Skalar-, IN-, FROM- und SELECT-Unterabfragen, korrelierte Unterabfragen, EXIST…
Artikel lesen →Datenbanken & SQLSQL-Transaktionen und ACID erklärt: COMMIT, ROLLBACK und Isolationsstufen
SQL-Transaktionen und ACID anhand einer von uns durchgeführten Banküberweisung erklärt: COMMIT, ROLLBACK, Sicherungspunkte, Sperren, Isolationsstufe…
Artikel lesen →SoftwareentwicklungSpickzettel für Git-Befehle: Die Befehle, die Sie tatsächlich verwenden, mit Beispielen
Ein Git-Befehls-Spickzettel, gruppiert nach Aufgabe: Setup, Staging, Branches, Remotes, Stash, Verlauf und Rückgängigmachen von Fehlern, mit Ausgabe…
Artikel lesen →SoftwareentwicklungErklärte JavaScript-Versprechen: Dann, Catch, Promise.all und häufige Fehler
JavaScript-Versprechen erklärt mit Code, den wir ausgeführt haben: Zustände, dann und Fangketten, Fehlerbehandlung, Promise.all, allSettled, Rennen …
Artikel lesen →SoftwareentwicklungPython-Wörterbuch-Tutorial: Methoden, Beispiele und gängige Muster
Ein Python-Wörterbuch-Tutorial mit Code, den wir ausgeführt haben: Diktate erstellen, lesen und aktualisieren, Schlüsselmethoden, Zusammenführung, V…
Artikel lesen →Künstliche IntelligenzWas ist RAG? Retrieval-Augmented Generation anhand eines Arbeitsbeispiels erklärt
Was ist RAG? Abruf-erweiterte Generierung Schritt für Schritt erklärt: Indizierung, Chunking, Einbettungen, Abruf, ein kleines funktionierendes Pyth…
Artikel lesen →DevOpsTerraform-Tutorial für Anfänger: Infrastruktur als Code von der ersten Datei bis zu den Modulen
Ein Terraform-Tutorial für Anfänger: Beginnen Sie ohne Cloud-Konto, lernen Sie Init, Planen und Anwenden, dann Variablen, Ausgaben, Status, Module u…
Artikel lesen →DevOpsDocker vs. Kubernetes: Hauptunterschiede, wie sie zusammenarbeiten und was Sie brauchen
Docker vs. Kubernetes erklärt: Was jeder tut, die gleiche App läuft mit beiden, Docker Compose und Swarm im Vergleich, die Dockershim-Änderung und w…
Artikel lesen →TestautomatisierungPytest-Tutorial für Anfänger: Vorrichtungen, Parametrisierung und reale Beispiele
Ein Pytest-Tutorial für Anfänger mit Tests, die wir auf Pytest 9.2 durchgeführt haben: Assertions, Fixtures, Parametrize, Conftest, Markers, tmp_pat…
Artikel lesen →SoftwaretestsSoftware Testing Life Cycle (STLC): 6 Phasen, Einstiegs- und Ausstiegskriterien, Beispiel
Der Softwaretest-Lebenszyklus erklärt: sechs STLC-Phasen mit Ein- und Ausstiegskriterien, Ergebnisse, ein Beispiel für eine funktionierende Anmeldef…
Artikel lesen →SoftwareentwicklungGit merge vs rebase: Unterschiede, Beispiele und wann man was nutzt
Git merge vs rebase erklärt mit echter Log-Ausgabe, einer Vergleichstabelle, der goldenen Regel des Rebase und einem sicheren Team-Workflow.
Artikel lesen →SoftwareentwicklungPython List Comprehension: Syntax, Beispiele und wann man darauf verzichtet
Python List Comprehension erklärt: Syntax, Filter, if-else, verschachtelte Schleifen, gemessene Zeiten und Fälle, in denen eine normale for-Schleife…
Artikel lesen →Datenbanken & SQLSQL Joins erklärt mit Beispielen (Inner, Left, Right, Full)
SQL Joins Schritt für Schritt mit Beispieltabellen und Abfragen verstehen: INNER, LEFT, RIGHT, FULL, CROSS und SELF, plus typische Fehler und Perfor…
Artikel lesen →