Listen, Dictionaries und Tupel gehören zu den wichtigsten Datenstrukturen in Python und sind für die Netzwerkautomation besonders wertvoll. Sobald Skripte nicht mehr nur mit einzelnen Variablen arbeiten, sondern mehrere Geräte, Interfaces, VLANs, IP-Adressen oder API-Antworten verarbeiten sollen, reichen einfache Werte allein nicht mehr aus. Genau hier kommen strukturierte Datensammlungen ins Spiel. Eine Liste eignet sich gut für geordnete Wertefolgen wie Hostnamen oder VLAN-IDs. Ein Dictionary ist ideal, wenn Informationen als Schlüssel-Wert-Paare vorliegen, etwa Hostname, Management-IP und Rolle eines Geräts. Ein Tupel speichert ebenfalls mehrere Werte, ist aber unveränderlich und dadurch für feste Datenpaare oder definierte Zustände nützlich. Wer diese drei Strukturen sauber versteht, baut eine direkte Grundlage für realistische Python-Skripte im Netzwerkumfeld auf. Gerade in der Netzwerkautomation entscheidet der sichere Umgang mit Listen, Dictionaries und Tupeln oft darüber, ob ein Skript nur ein kleines Demo-Beispiel bleibt oder tatsächlich mit echten Infrastrukturinformationen sinnvoll arbeiten kann.
Warum Datenstrukturen für Network Engineers so wichtig sind
In der Netzwerktechnik entstehen fast immer mehrere zusammengehörige Werte. Ein einzelnes Gerät hat nicht nur einen Namen, sondern meist auch eine Management-IP, eine Rolle, vielleicht einen Standort und einen Status. Ein Switch enthält nicht nur einen Port, sondern viele Interfaces. Ein Netzwerkprojekt arbeitet nicht nur mit einer VLAN-ID, sondern mit einer ganzen Menge von VLANs, Hostadressen, ACL-Einträgen oder API-Rückgaben. Genau deshalb sind Datenstrukturen so wichtig.
Für Network Engineers liegt der praktische Nutzen darin, dass Informationen nicht mehr lose und unstrukturiert im Code verteilt werden müssen. Statt zehn einzelne Variablen für zehn Geräte anzulegen, kann eine Liste oder ein Dictionary diese Daten sinnvoll bündeln. Genau das macht Skripte wartbarer, kürzer und leichter erweiterbar.
Typische Netzwerkdaten, die strukturiert gespeichert werden sollten
- Listen von Switches, Routern oder Firewalls
- VLAN-IDs und Netzsegmente
- Hostname, Management-IP und Rolle eines Geräts
- Interface-Namen und Statuswerte
- JSON-Daten aus APIs oder Controller-Antworten
Was eine Liste in Python ist
Eine Liste ist eine geordnete Sammlung von Werten. Das bedeutet: Mehrere Elemente werden in einer festen Reihenfolge gespeichert und können später über ihre Position oder durch Schleifen verarbeitet werden. Listen sind veränderbar. Man kann also Werte hinzufügen, entfernen oder ändern. Genau das macht sie für viele typische Automatisierungsaufgaben besonders nützlich.
In Python werden Listen mit eckigen Klammern geschrieben. Die einzelnen Elemente stehen durch Kommas getrennt in der Liste. Eine Liste kann Zahlen, Texte oder auch komplexere Strukturen wie Dictionaries enthalten. Für Einsteiger ist das besonders praktisch, weil viele erste Automatisierungsaufgaben direkt mit Listen beginnen.
Einfaches Beispiel für eine Liste
switches = ["SW1", "SW2", "SW3"]
Hier enthält die Liste drei Hostnamen. Genau diese Struktur lässt sich später mit einer Schleife bequem verarbeiten.
Typische Netzwerkbeispiele für Listen
- Mehrere Gerätenamen
- Eine Reihe von IP-Adressen
- Eine Menge von VLAN-IDs
- Eine Liste von Interfaces
Wie Listen praktisch verwendet werden
Der große Vorteil von Listen besteht darin, dass sich viele ähnliche Objekte gesammelt verarbeiten lassen. Ein Skript kann so etwa nacheinander mehrere Switches prüfen, mehrere VLAN-IDs ausgeben oder über eine Reihe von Interfaces laufen. Genau deshalb gehören Listen zu den ersten wirklich nützlichen Werkzeugen für Netzwerkautomatisierung.
Beispiel: Eine Liste von Geräten ausgeben
switches = ["SW1", "SW2", "SW3"]
for switch in switches:
print("Pruefe Gerät:", switch)
Dieses Muster taucht in der Praxis ständig auf. Es verbindet die Datenstruktur Liste direkt mit Schleifenlogik und ist damit bereits echte kleine Automatisierung.
Beispiel: VLAN-IDs in einer Liste
vlans = [10, 20, 30, 40]
for vlan in vlans:
print("Gefundenes VLAN:", vlan)
Hier zeigt sich, dass Listen nicht nur Texte, sondern auch Zahlen aufnehmen können.
Wichtige Eigenschaften von Listen
Listen haben einige Eigenschaften, die für Netzwerker besonders wichtig sind. Erstens sind sie geordnet. Die Reihenfolge der Elemente bleibt also erhalten. Zweitens sind sie veränderbar. Drittens können sie unterschiedliche Datentypen enthalten, auch wenn in sauberem Code meist ähnliche Werte gemeinsam gespeichert werden.
Wichtige Punkte zu Listen
- Listen sind geordnet
- Listen sind veränderbar
- Listen können mehrere Datentypen enthalten
- Listen eignen sich sehr gut für Schleifen
Beispiel: Liste erweitern
switches = ["SW1", "SW2"]
switches.append("SW3")
print(switches)
Die Methode append() fügt ein neues Element am Ende der Liste hinzu. Genau das ist in der Praxis nützlich, wenn Skripte dynamisch Daten sammeln.
Was ein Dictionary in Python ist
Ein Dictionary ist eine Datenstruktur aus Schlüssel-Wert-Paaren. Anders als eine Liste, bei der Werte über ihre Position angesprochen werden, funktioniert ein Dictionary über benannte Schlüssel. Das ist im Netzwerkumfeld besonders wertvoll, weil viele Informationen genau so aufgebaut sind: Ein Gerät hat einen Hostnamen, eine IP-Adresse, eine Rolle und einen Status. Diese Daten lassen sich in einem Dictionary deutlich sinnvoller organisieren als in einer bloßen Liste.
In Python werden Dictionaries mit geschweiften Klammern geschrieben. Jeder Schlüssel wird einem Wert zugeordnet. Gerade für JSON-nahe Arbeit und für strukturierte Gerätedaten sind Dictionaries oft die wichtigste Datenstruktur überhaupt.
Einfaches Beispiel für ein Dictionary
geraet = {
"hostname": "SW1",
"mgmt_ip": "192.168.10.10",
"rolle": "access-switch"
}
Dieses Beispiel zeigt bereits sehr gut, warum Dictionaries in der Netzwerkautomation dominieren: Die Daten sind klar benannt und fachlich sofort lesbar.
Warum Dictionaries für Netzwerkskripte oft wichtiger sind als Listen
Listen sind ideal, wenn einfach mehrere Werte gleicher Art gespeichert werden sollen. Sobald aber unterschiedliche Eigenschaften zu einem Objekt gehören, werden Dictionaries oft sinnvoller. Ein Switch ist nicht nur ein String in einer Liste. Er besteht meist aus mehreren Attributen. Genau dafür sind Dictionaries gemacht.
Auch viele API-Antworten liefern Daten als JSON, und JSON wird in Python meist als Kombination aus Dictionaries und Listen dargestellt. Wer Dictionaries beherrscht, versteht deshalb einen großen Teil moderner Netzwerkprogrammierbarkeit deutlich schneller.
Typische Inhalte von Dictionaries im Netzwerkumfeld
- Hostname eines Geräts
- Management-IP
- Geräterolle
- Status oder Health-Wert
- Standort oder VLAN-Zuordnung
Beispiel: Werte aus einem Dictionary lesen
geraet = {
"hostname": "R1",
"mgmt_ip": "192.168.20.1",
"rolle": "router"
}
print(geraet["hostname"])
print(geraet["mgmt_ip"])
print(geraet["rolle"])
Die Schlüssel dienen hier als klare fachliche Bezeichner. Genau das macht den Code verständlicher.
Mehrere Geräte als Liste von Dictionaries
Eine der wichtigsten Kombinationen in der Netzwerkautomation ist die Liste von Dictionaries. Dabei enthält eine Liste mehrere Geräte, und jedes Gerät wird als Dictionary dargestellt. Diese Struktur ist extrem praxisnah, weil sie fast direkt echten Inventardaten oder API-Rückgaben entspricht.
Praxisnahes Beispiel
geraete = [
{"hostname": "SW1", "mgmt_ip": "192.168.10.10", "rolle": "access"},
{"hostname": "SW2", "mgmt_ip": "192.168.10.11", "rolle": "distribution"},
{"hostname": "R1", "mgmt_ip": "192.168.20.1", "rolle": "router"}
]
for geraet in geraete:
print(geraet["hostname"], geraet["mgmt_ip"], geraet["rolle"])
Dieses Muster ist für Network Engineers besonders wichtig, weil daraus sehr leicht Inventarisierung, Statusprüfungen oder API-Verarbeitung entstehen können.
Warum diese Struktur so nützlich ist
- Mehrere Objekte lassen sich gesammelt speichern
- Jedes Objekt hat klare Eigenschaften
- Die Daten lassen sich sehr gut durch Schleifen verarbeiten
- Die Struktur ähnelt typischen JSON-Antworten
Wichtige Dictionary-Operationen
Im Alltag reicht es nicht, Dictionaries nur zu lesen. Oft müssen Werte hinzugefügt, geändert oder geprüft werden. Gerade bei JSON-Antworten oder Inventarlisten ist das sehr nützlich. Ein Skript kann beispielsweise einen Statuswert nachtragen oder nur dann eine Aktion ausführen, wenn ein bestimmter Schlüssel vorhanden ist.
Beispiel: Wert ändern
geraet = {
"hostname": "SW1",
"status": "offline"
}
geraet["status"] = "online"
print(geraet["status"])
Beispiel: Neuen Schlüssel hinzufügen
geraet = {
"hostname": "SW1"
}
geraet["mgmt_ip"] = "192.168.10.10"
print(geraet)
Beispiel: Prüfen, ob ein Schlüssel existiert
if "mgmt_ip" in geraet:
print("Management-IP vorhanden")
Solche Prüfungen sind besonders nützlich, wenn Daten aus externen Quellen stammen und nicht immer vollständig sind.
Was ein Tupel in Python ist
Ein Tupel ist eine geordnete Sammlung von Werten, ähnlich wie eine Liste. Der entscheidende Unterschied besteht darin, dass ein Tupel nicht verändert werden kann, nachdem es erstellt wurde. Es ist also unveränderlich. In Python werden Tupel meist mit runden Klammern geschrieben.
Für Einsteiger wirkt das zunächst nach einer kleinen Abwandlung der Liste. In der Praxis ist die Unveränderlichkeit aber sinnvoll, wenn Daten zusammengehören und bewusst stabil bleiben sollen. Genau deshalb haben Tupel durchaus ihren Platz in der Netzwerkautomation.
Einfaches Beispiel für ein Tupel
geraet = ("SW1", "192.168.10.10", "access-switch")
Hier werden drei Werte als feste Gruppe gespeichert. Die Reihenfolge ist definiert, aber die Einträge sollen nicht später geändert werden.
Wofür Tupel in der Praxis nützlich sind
Tupel sind besonders dann sinnvoll, wenn eine feste Zusammengehörigkeit besteht und keine nachträgliche Veränderung gewünscht ist. In Netzwerkskripten kann das etwa für feste Paare oder definierte Zuordnungen sinnvoll sein. Zum Beispiel könnte ein Tupel aus Hostname und IP-Adresse oder aus VLAN-ID und VLAN-Name bestehen.
In vielen einfachen Einsteigerskripten kommen Tupel seltener vor als Listen und Dictionaries. Dennoch ist es wichtig, sie zu kennen, weil sie in Schleifen, Rückgabewerten von Funktionen oder bei festen Datengruppen nützlich sein können.
Typische sinnvolle Tupel-Beispiele
- Ein fester Hostname mit zugehöriger IP
- Ein VLAN-Name mit seiner ID
- Ein Interface mit einem Statuswert, wenn die Paarung nicht verändert werden soll
Beispiel: Tupel für VLAN-Zuordnung
vlan = (10, "Clients")
print("VLAN-ID:", vlan[0])
print("VLAN-Name:", vlan[1])
Hier werden die Werte über ihre Position angesprochen, ähnlich wie bei Listen.
Der Unterschied zwischen Liste und Tupel
Listen und Tupel sehen auf den ersten Blick ähnlich aus, erfüllen aber unterschiedliche Zwecke. Listen sind veränderbar und deshalb ideal für dynamische Datenmengen. Tupel sind unveränderlich und deshalb gut geeignet für feste, stabile Datengruppen. Für Network Engineers ist diese Unterscheidung wichtig, weil sie hilft, bewusst die passende Struktur zu wählen.
Einfacher Vergleich
- Liste: geordnet und veränderbar
- Tupel: geordnet und unveränderlich
Beispiel für den praktischen Unterschied
vlans = [10, 20, 30]
vlans.append(40)
print(vlans)
Eine Liste kann erweitert werden. Ein Tupel lässt sich so nicht einfach verändern.
Wann welche Struktur sinnvoll ist
Für Einsteiger ist eine einfache Entscheidungslogik hilfreich. Wenn du mehrere Werte derselben Art in Reihenfolge speichern und später verändern willst, ist meist eine Liste sinnvoll. Wenn du benannte Eigenschaften zu einem Objekt speichern möchtest, ist fast immer ein Dictionary die bessere Wahl. Wenn du eine feste, unveränderliche Datengruppe brauchst, kann ein Tupel passend sein.
Praktische Entscheidungshilfe
- Liste für viele Geräte, VLANs oder Interfaces
- Dictionary für Geräteeigenschaften oder strukturierte API-Daten
- Tupel für feste Paare oder unveränderliche Gruppen
Diese Unterscheidung hilft nicht nur bei der Syntax, sondern vor allem beim sauberen Entwurf eines Skripts.
Typische Netzwerkbeispiele mit allen drei Strukturen
Der Unterschied wird besonders klar, wenn ähnliche Netzwerkdaten mit unterschiedlichen Strukturen dargestellt werden.
Liste von Hostnamen
hostnamen = ["SW1", "SW2", "R1"]
Dictionary für ein einzelnes Gerät
geraet = {
"hostname": "SW1",
"mgmt_ip": "192.168.10.10",
"rolle": "access-switch"
}
Tupel für feste VLAN-Information
vlan_info = (10, "Clients")
Alle drei Strukturen können im selben Projekt vorkommen, jeweils mit einer klaren fachlichen Rolle.
Listen, Dictionaries und Tupel zusammen verwenden
In echten Netzwerkskripten werden diese Datenstrukturen oft kombiniert. Besonders häufig ist die Liste von Dictionaries. Ebenso denkbar sind Dictionaries, deren Werte Listen enthalten, etwa wenn ein Gerät mehrere VLANs oder Interfaces besitzt. Genau solche Kombinationen machen Python für Netzwerkautomation so stark.
Praxisnahes Beispiel
geraete = [
{
"hostname": "SW1",
"mgmt_ip": "192.168.10.10",
"vlans": [10, 20, 30]
},
{
"hostname": "SW2",
"mgmt_ip": "192.168.10.11",
"vlans": [10, 40]
}
]
for geraet in geraete:
print("Gerät:", geraet["hostname"])
print("VLANs:", geraet["vlans"])
Diese Struktur ist bereits sehr nah an realen Automatisierungsaufgaben. Sie zeigt, wie mehrere Geräte mit mehreren Eigenschaften und untergeordneten Listen verwaltet werden können.
Warum Dictionaries besonders wichtig für JSON und APIs sind
In moderner Netzwerkautomation spielen APIs und JSON eine große Rolle. JSON-Daten werden in Python meist als Dictionaries und Listen dargestellt. Deshalb ist der sichere Umgang mit diesen Strukturen besonders wertvoll. Wer ein Dictionary lesen und durch eine Liste von Dictionaries iterieren kann, hat bereits einen großen Teil der späteren API-Verarbeitung verstanden.
Einfaches JSON-nahes Beispiel
api_antwort = {
"devices": [
{"hostname": "SW1", "status": "online"},
{"hostname": "SW2", "status": "offline"}
]
}
for geraet in api_antwort["devices"]:
print(geraet["hostname"], geraet["status"])
Genau solche Muster treten in Controller- oder Plattformdaten sehr häufig auf. Deshalb sind Listen und Dictionaries für Network Engineers besonders relevant.
Typische Fehler beim Arbeiten mit diesen Datenstrukturen
Gerade am Anfang treten immer wieder ähnliche Fehler auf. Manche entstehen durch Verwechslung der Strukturen, andere durch unsaubere Zugriffe auf Werte. Wer diese Stolperstellen kennt, spart später viel Zeit.
Häufige Fehler
- Liste und Dictionary werden verwechselt
- Dictionary-Schlüssel werden falsch geschrieben
- Es wird versucht, ein Tupel zu verändern
- Eine Listenposition wird angesprochen, die nicht existiert
- Es wird angenommen, dass alle API-Daten immer vollständig sind
Beispiel für einen typischen Fehler
geraet = {
"hostname": "SW1"
}
print(geraet["mgmt_ip"])
Hier wird auf einen Schlüssel zugegriffen, der im Dictionary nicht vorhanden ist. Solche Fälle müssen in echten Skripten bewusst behandelt werden.
Wichtige Praxisbezüge für Network Engineers
Listen, Dictionaries und Tupel wirken anfangs wie allgemeine Programmierkonzepte. Für Network Engineers sind sie aber direkte Werkzeuge für den Alltag. Hostlisten, Interface-Status, VLAN-Tabellen, JSON-Antworten, Geräteeigenschaften und kleine Inventarstrukturen beruhen fast immer auf genau diesen Bausteinen. Wer sie sicher beherrscht, kann spätere Skripte deutlich leichter lesen, schreiben und erweitern.
Typische Verbindungen zum Netzwerkalltag
- Hostlisten aus Dateien werden als Listen verarbeitet
- Gerätedaten werden in Dictionaries gespeichert
- JSON-Antworten bestehen aus Kombinationen von Listen und Dictionaries
- Feste Wertepaarungen können als Tupel modelliert werden
Typische Befehle und Werkzeuge im späteren Praxisumfeld
python3
cat hosts.txt
cat daten.json
show ip interface brief
show vlan brief
show interfaces status
Genau deshalb sind Listen, Dictionaries und Tupel in Python keine nebensächlichen Sprachdetails, sondern fundamentale Werkzeuge für echte Netzwerkautomation. Sie helfen dabei, Infrastrukturinformationen strukturiert abzubilden und sind damit ein direkter Schritt von einfachen Python-Grundlagen hin zu realistischen, nützlichen Netzwerkskripten.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.












