(named) Tuples und ihre Verwendung
Hallo, das Buch "Think Python" habe ich nur bis zum Kapitel zur Objekt Orientierten Programmierung gelesen, weil ich möglichst schnell an dem Kurs auf training.talkpython.fm teilnehmen wollte. Nun fiel mir dort bei dem Thema "named tuples" auf, dass ich den Sinn bzw. die bevorzugte Verwendung von Tuples gar nicht verstanden habe. Könnte das bitte jemand mit einem anschaulichen Beispiel erklären? Vielen Dank! P.
Hallo Patrick der Vorzug von Tupeln besteht vor allem darin, dass sie immutable Objekte sind, d. h. dass man sie auch als Keys in Dictionaries verwenden oder in Sets stecken kann. Das ist im realen Leben oft sehr hilfreich. Gruß Rainer Fischbach ______________________________________________________ ECS Engineering Consulting & Solutions GmbH Ingolstädter Straße 47 92318 Neumarkt DEUTSCHLAND Tel.: +49 (0)9181 - 4764-84 Fax: +49 (0)9181 - 4764-50 Mobil: +49 (0)171 - 4141570 E-Mail: fischbach(at)ecs-gmbh.de Web: http://www.ecs-gmbh.de ______________________________________________________ Engineering Consulting & Solutions GmbH Sitz der Gesellschaft: Neumarkt i.d.OPf. Geschäftsführer: Wolfgang Dietzler, Björn Dietzler Eingetragen im Handelsregister Nürnberg unter HRB: 13998 USt.-IDNr. gemäß § 27a Umsatzsteuergesetz: DE 181055415 Hinweis zur Vertraulichkeit: Die in dieser E-Mail enthaltenen Informationen sind vertraulich zu behandeln und nur für den/die dort genannten Empfänger bestimmt. Die Vertraulichkeit ist unter Berücksichtigung der einschlägigen Gesetze, insbesondere BDSG, durch den/die Empfänger sicherzustellen. Sofern Sie nicht der beabsichtigte Empfänger sind, ist das Speichern, die Weiterleitung oder das Kopieren dieser E-Mail strikt untersagt. Haben Sie diese Nachricht irrtümlicherweise erhalten, benachrichtigen Sie uns bitte umgehend und löschen das Dokument. ________________________________________ Von: python-de [python-de-bounces+fischbach=ecs-gmbh.de@python.org]" im Auftrag von "Patrick Frank [patrick.frank.042@gmail.com] Gesendet: Montag, 2. Dezember 2019 20:20 An: python-de@python.org Betreff: [Python-de] (named) Tuples und ihre Verwendung Hallo, das Buch "Think Python" habe ich nur bis zum Kapitel zur Objekt Orientierten Programmierung gelesen, weil ich möglichst schnell an dem Kurs auf training.talkpython.fm teilnehmen wollte. Nun fiel mir dort bei dem Thema "named tuples" auf, dass ich den Sinn bzw. die bevorzugte Verwendung von Tuples gar nicht verstanden habe. Könnte das bitte jemand mit einem anschaulichen Beispiel erklären? Vielen Dank! P. _______________________________________________ python-de maillist - python-de@python.org https://mail.python.org/mailman/listinfo/python-de
Hi Patrick, wie schon erläutert sind tuples erstmal immutable Aufzählungen. Zur Anwendung kommen tuples oftmals dann, wenn die Daten nicht verändert werden können / sollen. Named tuples machen die Verwendung von Tuples einfacher, weil man zur Adressierung der Elemente darin anstatt mittels Zugriff per Index diese direkt wie ein Attribut ansprechen kann. Das erleichtert erstmal das Code-Verständnis, kann aber auch eine sinnvolle Grundlage sein, falls man später den Code mal umbauen will (bspw. zur Verwendung von eigenen Klassen oder wenn das Python aktuell genug ist mittels dataclasses). Hier ist mal ein kleines Beispiel zur Arbeit mit named tuples: from collections import namedtuple from datetime import date Contract = namedtuple("Contract", "nr customer expiration_date") data = [Contract("A123", "Hans AG", date(2020, 1, 30)), Contract("A124", "Hubert UH", date(2020, 2, 16)), Contract("A125", "Wurst GmbH", date(2019, 12, 31))] for contract in data: print("Contract #%s with %s expires on %s" % contract) if contract.expiration_date < date(2020, 1, 1): print("ATTENTION: Contract %s will expire this year!" % contract.nr) Viele Grüße Niko
participants (3)
-
Niko Wenselowski
-
Patrick Frank
-
Rainer Fischbach