Du meidest Tupel? Nicht nach diesem Beitrag!

Python hat mit Listen, Sets, Tupel und Dictionaries eine Reihe nützlicher Datenstrukturen direkt mit dabei.
Aber wusstest du, dass du auch noch Hilfe dabei kommst, die Typen so effizient wie möglich zu nutzen?
In dieser kleinen Serie möchte ich dir zeigen, welche das sind!
Hier wird es um Tupel gehen und wie schön man mit ihnen arbeiten kann.

Super hilfreich und doch oft übersehen und gemieden.
Das wird sich hoffentlich in Zukunft ändern!

Mit dem collections Modul bekommst du mehrere Klassen, die dir dabei helfen sollen, die verschienen Typen in Python so effizient wie möglich zu nutzen.

Als Beispiel dient heute eine ToDo Liste.
Aufgaben können zur Liste hinzugefügt oder auch wieder entfernt werden.

Tupel sind unübersichtlich?

Kurz zur Erinnerung:
Tupel sind geordnete, unveränderliche Sequenzen.
Daher eignen sie sich super, um die Zeilen einer Tabelle darzustellen.
Zum Beispiel in SQL Datenbanken, CSV- oder Excel-Dateien.

Zuerst erzeugst du mal ein einfaches Tupel:

("Geschirrspüler ausräumen", "Küche", "Wichtig") 

Das besteht aus drei Elementen: Element 0, Element 1, Element 2.

Namen wären schön…

Aber eigentlich hilft das nicht weiter. Du willst ja eher wissen, was das für Elemente sind.
Hilfreich wäre also: 

Element 0 = Kurzbeschreibung
Element 1 = Kategorie
Element 2 = Priorität

Hier kommen namedtuples ins Spiel.
Mit namedtuples kannst du jedem Element in einem Tuple einen expliziten Namen zuordnen.
Damit verlierst du nicht mehr den Überblick und weißt, in welcher „Spalte“ welche Daten stecken.

Und so kannst du dein Tuple ganz einfach auf ein namedtuple umschreiben:

from collections import namedtuple
ToDos = namedtuple('ToDos', ['Kurzbeschreibung', 'Kategorie', 'Priorität']) 

Du nutzt die Funktion namedtuple(), um eine Klasse mit der entsprechenden Spaltenbeschreibung zu erzeugen.
Du legst also die Spaltennamen deiner Tabelle fest.

Hier wird der „Variablenname“ (sozusagen) auch großgeschrieben. Du erzeugst hier ja eine Klasse und keine Instanz.

NamedTuple: So erzeugst du ein Tupel mit Namen!

Die Funktion namedtuple() nimmt zwei Parameter entgegen:
Zuerst den Namen der Tabelle selbst → ToDos
Und anschließend die Spaltennamen → Kurzbeschreibung, Kategorie, Priorität

Jetzt kannst du die neu erzeugte Klasse benutzen, um deinen Eintrag zu erzeugen.
In dem Fall wird die Variable auch wieder kleingeschrieben.
Jetzt erzeugst du ja eine Instanz der Klasse ToDos, die du soeben generiert hast.

geschirr = ToDos('Geschirrspüler ausräumen', 'Küche', 'Wichtig') 

Datenzugriff? Super einfach!

Wenn du dir die Instanz jetzt einmal ausgeben lässt, siehst du schön geordnet deine Werte da drin:

ToDos(Kurzbeschreibung='Geschirrspüler ausräumen', Kategorie='Küche', Priorität='Wichtig') 

Das gibt dir jetzt auch neue Möglichkeiten, auf deine Daten zuzugreifen!
Erstmal natürlich so, wie du es von einer Klasse erwarten würdest → Einfach über das Attribut:

geschirr.Kategorie 

Aber da es sich ja weiterhin eigentlich um ein Tupel handelt, kannst du auch weiterhin über den Index darauf zugreifen, wie du es von einem Tupel gewohnt bist!

geschirr[1] 

Zusammenfassung

Tupel sind auf den ersten Blick etwas gewöhnungsbedürftig.
Aber einmal genauer hingesehen sind sie ein sehr hilfreicher Datentyp!

Durch namedtuple() im collections Modul ist es leichter den Überblick zu behalten, wenn die Tupel mal größer werden.
Es macht den ganzen Code einfach deutlich lesbarer.
Trotzdem gehen die Vorteile von Tupel, dass sie geordnet und unveränderlich sind – nicht verloren!

Probier es aus und sag mir deine Meinung zu namedtuple()!

Wie kannst du am schnellsten Summen...
Wie kannst du am schnellsten Summen bilden? Python Built-Ins | #Shorts

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht.

Scroll to Top
ANFORDERN
Anfordern
Bereit zum Ausdrucken | Mit Erklärungen
IMMER ZUR HAND
ANFORDERN
Anfordern
Bereit zum Ausdrucken | Mit Erklärungen
IMMER ZUR HAND
Trag dich schnell ein und bekomme Zugang zum Download!
Gib mir den Download!