Wege namedtuple zu realisieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

Hi,
ich suche Arten wie man bennante Rekord-Datenstrukturen realisieren kann.

Ich meine eine Art ist ein Dictionary:
Z.B.: {plz:xxxxx , ort:yyyyy, strasse: zzzzz}

Sind einfach Tupel,
z.B.: (0,"Hallo",3)
oder auch Listen,
z.B:.: [1,"Hi",99]
auf namedtuple?

Ich wäre dankbar für eure Aufklärung.
Benutzeravatar
pyHoax
User
Beiträge: 84
Registriert: Donnerstag 15. Dezember 2016, 19:17

siehe: https://docs.python.org/2/library/colle ... namedtuple

from collections import namedtuple
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

Hi,
auf der Seite war ich zuvor schon nur war das dict nicht dabei.
Das ist bei mir im Skript aber als Beispiel gegeben für ein namedtuple in Python.

Gibt es also die drei Varianten in Python:
namedtuple("Point", ["x", "y"], verbose=True)

Also ein Tupel mit einem einfachen String ("Point") oder eine Liste mit Strings als Inhalt (["x", "y"]), oder eine Wertzuweisung (verbose=True)?
Müssen es Strings oder Wahrheitswerte sein, oder dürfen es auch Integer oder floats sein?
Ist ein dict innerhalb der Tupels erlaubt?
Also dann so: namedtuple({plz:12345 , ort: hamburg}) ?

Danke schonmal für die Hilfe
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Bindl: »namedtuple« erzeugt einen Datentyp und nicht das Tuple selbst. Für Deinen Fall also

Code: Alles auswählen

Address = namedtuple("Address", "plz, ort, strasse")
my_home = Address(plz=20457, ort="Hamburg", strasse="Platz der Deutschen Einheit 1")
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

Hi,
das errinert mich schwer an Klassen und die Parameter mit der __init__ Funktion.

Was mich jetzt noch etwas verwirrt ist das unser Prof. von 3 unterschiedlichen Möglichkeiten spricht, wie man eine benannte Rekord-Datenstruktur in Python realisieren kann.

Als Beispiel in unserem Skript ist wie gesagt einfach ein Dictionary angebeben.
Was sind denn nun die 3 Möglichkeiten?
Das ist mir noch nicht so wirklich klar.

PS: Sorry für die vielen Nachfragen.
BlackJack

@Bindl: Wörterbuch, `collections.namedtuple()`, und ``class`` würde ich mal vermuten. Letztendlich kann Dir das aber nur Dein Prof beantworten was er da gemeint hat.
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

Eine Frage noch, bzw. Korrektur.
Ist folgendes korrekt?

Code: Alles auswählen

adresse = namedtuple(["xx","yy"])
und

Code: Alles auswählen

adresse = namedtuple({plz:12345,ort:Hamburg})
Benutzeravatar
pyHoax
User
Beiträge: 84
Registriert: Donnerstag 15. Dezember 2016, 19:17

Was sind denn nun die 3 Möglichkeiten?
atrribut dicts, namedtuple und class

Atrribut dicts musst du aber selber implementieren oder von hier importieren https://pypi.python.org/pypi/attrdict
Ist folgendes korrekt?
Nein, beides nicht.
Warrum fragst du nicht deinen python interpreter ?
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

Was sind denn nun die 3 Möglichkeiten?
atrribut dicts, namedtuple und class

Atrribut dicts musst du aber selber implementieren oder von hier importieren https://pypi.python.org/pypi/attrdict
Vielen Dank für die Hilfe euch allen.
Warrum fragst du nicht deinen python interpreter ?
Gute Frage. Habe gedacht, bevor ich blind herumprobiere frage ich die Experten.
Wenn ich etwas mehr Ahnung von einem Teilgebiet habe probiere ich ganz gerne herum.
Hier war ich mir aber sehr unsicher wie das ganze geht.
Antworten