Hallo, ich als Python-Anfänger habe zum Dekodieren von abgekürzten Bezeichnungen zwei Arrays erstellt. In Array 1 befinden sich die Abkürzungen und in Array 2 an jeweils gleicher Position die ausgeschriebenen Bezeichnungen. Eine Schleife durchläuft nun Array 1 bis es einen Match ergibt und mit der letzten gespeicherten Position aus Array 1 wird nun die ausgeschriebene Bezeichnung aus Array 2 abgefragt. Das Ganze funktioniert soweit, aber wenn ich die Arrays um weitere Bezeichnungen erweitere, musste ich bisher immer darauf achten, dass sich die Positionen in Array 1 und Array 2 zueinander nicht verschieben. == Idee == Anstatt einem Array würde ich lieber so etwas wie eine Tabelle mit Zeilen und Spalten verwenden. In Spalte 1 die Abkürzung und in Spalte 2 die ausgeschriebene Bezeichnung. Ein Match in Spalte 1 (Abkürzung) und der String aus Spalte 2 (Bezeichnung) wird ausgegeben. Das könnte ich dann nach Belieben mit weiteren Zeilen erweitern. Tante Google hat zu meiner Suche etwas mit Matrizen ausgespuckt, aber das ist für mich als Python-Anfänger mindestens eine Hausnummer zu hoch. == Frage == Wie kann ich meine Idee möglichst einfach umsetzen? Gruß Benedikt Schwarz
Hallo Benedikt, schau dir mal Dictionarys an: http://docs.python.org/2/tutorial/datastructures.html#dictionaries Damit kannst du die Abkürzung als Schlüssel und die Bezeichnung als Wert ablegen. Der Match wir dann einfach ein Zugriff über den Schlüssel. Das ist nicht nur eleganter sondern auch schneller. Beispiel:
d = {'a': 'langer wert a', 'b': 'langer wert b'} d['a'] 'langer wert a' d['c'] = 'langer wert c' d {'a': 'langer wert a', 'b': 'langer wert b', 'c': 'langer wert c'}
Viele Grüße Mike Am 23.11.12 00:25, schrieb Benedikt Schwarz:
Hallo,
ich als Python-Anfänger habe zum Dekodieren von abgekürzten Bezeichnungen zwei Arrays erstellt. In Array 1 befinden sich die Abkürzungen und in Array 2 an jeweils gleicher Position die ausgeschriebenen Bezeichnungen.
Eine Schleife durchläuft nun Array 1 bis es einen Match ergibt und mit der letzten gespeicherten Position aus Array 1 wird nun die ausgeschriebene Bezeichnung aus Array 2 abgefragt.
Das Ganze funktioniert soweit, aber wenn ich die Arrays um weitere Bezeichnungen erweitere, musste ich bisher immer darauf achten, dass sich die Positionen in Array 1 und Array 2 zueinander nicht verschieben.
== Idee == Anstatt einem Array würde ich lieber so etwas wie eine Tabelle mit Zeilen und Spalten verwenden. In Spalte 1 die Abkürzung und in Spalte 2 die ausgeschriebene Bezeichnung.
Ein Match in Spalte 1 (Abkürzung) und der String aus Spalte 2 (Bezeichnung) wird ausgegeben. Das könnte ich dann nach Belieben mit weiteren Zeilen erweitern.
Tante Google hat zu meiner Suche etwas mit Matrizen ausgespuckt, aber das ist für mich als Python-Anfänger mindestens eine Hausnummer zu hoch.
== Frage == Wie kann ich meine Idee möglichst einfach umsetzen?
Gruß Benedikt Schwarz _______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de
participants (2)
-
Benedikt Schwarz
-
Mike Müller