
Hi,
ich möchte unter Python der Variablen (Array) steuer einen Wert zuweisen. Die Variable ist eine mehrdimensionale Liste:
steuer[steuerkennzeichen][nr] = nummer steuer[steuerkennzeichen][konto] = sachkonto steuer[steuerkennzeichen][betrag] = betrag
Das steuerkennzeichen soll zB "M16" sein. Ich bekomme aber die Fehlermeldung TypeError: sequence index must be integer Wie kann ich das anstellen, dass ich mit "M16" arbeiten kann. Denn dieser Wert ist vorgegeben, und darum dreht sich alles.
In php kann der Key eines Array auch ein String sein, wie bekomme ich das unter Python hin?
Weitere Fragen zu Listen werden folgen ... Wenn ihr ein gutes Manual mit Beispielen! zu Listen unter Python habt / kennt würde mir ein Link sehr helfen.
Gruß + Danke Ron
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Das steuerkennzeichen soll zB "M16" sein. Ich bekomme aber die Fehlermeldung TypeError: sequence index must be integer Wie kann ich das anstellen, dass ich mit "M16" arbeiten kann. Denn dieser Wert ist vorgegeben, und darum dreht sich alles.
Du mußt zwischen eine Liste und einem Dictionary unterscheiden. In PHP ist das gemischt, also so 'ne Art Zwitter. Dein Beispiel müßte in etwa so (ungetestet aus dem Kopf) aussehen:
steuer = {} steuer['M16'] = {} steuer['M16']['nr'] = nummer steuer['M16']['konto'] = konto
Das Beispiel schreit aber meine Meinung nach nach OO Programmierung. Der oberer Dictionaire ist vieleicht ok, aber die enthaltenen Element würde ich in jedem Fall als Klass implementieren. Also sowas wie:
class Kennzeichen(object): def __init__(self,nr,konto,betrag): self.nr = nr self.konto = konto self.betrag = betrag
und dann: steuer = {} steuer['M16'] = Kennzeichen('nr','konto','betrag)
und später z.B.
print steuer['M16'].betrag
Gruß, Achim
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Ron Opitz ron.opitz@dts.de writes:
Hi,
ich möchte unter Python der Variablen (Array) steuer einen Wert zuweisen. Die Variable ist eine mehrdimensionale Liste: [...]
In php kann der Key eines Array auch ein String sein, wie bekomme ich das unter Python hin?
Das ist ein *assoziatives* Array. In Python heißt das Dictionary:
steuer = {"M16" : {"nr" : 123456, "konto": 987654, "betrag" : 42}} steuer["M16"]["nr"]
123456
steuer["M16"]["betrag"] = 300 steuer["M16"]["betrag"]
300
Weitere Fragen zu Listen werden folgen ...
Ich vermute, dass es Fragen zu Dictionaries sein werden...
Gruß,
Heike
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Hallo Ron,
Am Mittwoch, 7. Mai 2003 16:26 schrieb Ron Opitz:
Hi,
ich möchte unter Python der Variablen (Array) steuer einen Wert zuweisen. Die Variable ist eine mehrdimensionale Liste:
steuer[steuerkennzeichen][nr] = nummer steuer[steuerkennzeichen][konto] = sachkonto steuer[steuerkennzeichen][betrag] = betrag
Das steuerkennzeichen soll zB "M16" sein. Ich bekomme aber die Fehlermeldung TypeError: sequence index must be integer Wie kann ich das anstellen, dass ich mit "M16" arbeiten kann. Denn dieser Wert ist vorgegeben, und darum dreht sich alles.
In php kann der Key eines Array auch ein String sein, wie bekomme ich das unter Python hin?
Anstatt einer Liste kannst Du ein Dictionary verwenden. Hier kannst Du dann folgendes machen:
steuer = {} skz = 'M16' nummer = 4711 konto = '0815' betrag = 2000 list = [] list[0:2] = [nummer, konto, betrag] steuer[skz] = list
Du hast dann ein Dictionary, welches wie folgt aufgebaut ist: { 'M16': [ 4711, '0815', 2000 ] }
Weitere Fragen zu Listen werden folgen ... Wenn ihr ein gutes Manual mit Beispielen! zu Listen unter Python habt / kennt würde mir ein Link sehr helfen.
Solche Links nehme ich auch sehr gern zur Kenntnis!
Gruß + Danke Ron
Grüße Andreas
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Die Variable ist eine mehrdimensionale Liste:
steuer[steuerkennzeichen][nr] = nummer steuer[steuerkennzeichen][konto] = sachkonto steuer[steuerkennzeichen][betrag] = betrag
Das steuerkennzeichen soll zB "M16" sein. Ich bekomme aber die Fehlermeldung TypeError: sequence index must be integer Wie kann ich das anstellen, dass ich mit "M16" arbeiten kann. Denn dieser Wert ist vorgegeben, und darum dreht sich alles.
Mal ein anderer Vorschlag:
class Struct: pass
steuer = Struct() steuer.M16 = Struct() steuer.M16.nr = nummer steuer.M16.konto = sachkonto steuer.M16.betrag = betrag
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Ron Opitz wrote:
ich möchte unter Python der Variablen (Array) steuer einen Wert zuweisen. Die Variable ist eine mehrdimensionale Liste:
http://www.python.org/doc/current/tut/node7.html#SECTION00740000000000000000...
Der Umgang mit Listen und Dictionaries ist etwas alltäglichen in Python und wird im Tutorial bestens erklärt. Wenn von den Herstellern einer Programmiersprache ein Tutorial erstellt wird, kann es als Anfänger nicht falsch sein, sich durchzuackern. Wieso sollten sich sonst die Autoren die Mühe machen ein derartiges Werk zu erstellen ? Nicht daß ich grob werden möchte, aber bei manchen Fragen, stelle ich mir die Frage, ob das Wort "Recherche" oder "Suchmaschiene" auch Anwendung findet, denn die meisten Fragen währen in eigeninitative innerhalb von 5 Minuten gelöst und es müsste nicht auf die mühselige Antwort über die Liste gewartet werden.
Für Python empfehle ich:
1. http://www.python.org/doc/current/tut/tut.html (KOMPLETT) 2. http://www.python.org/doc/FAQ.html (SEKTION 4) (JE NACH BEDARF) 3. http://www.python.org/doc/current/modindex.html (Standardmodule durchlesen)
Die API ist für den Programmierer wie die Bibel für den Pfarrer. Die Zeit die es kostet die API durchzuackern ist im Verhältnis geringer, als das Rad stetig neu zu erfinden. Nötige Module springen dann bei späterem suchen quasi ins Auge.
Liebe Grüße Daniel
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

daniel.poelzleithner wrote:
[...] Nicht daß ich grob werden möchte, aber bei manchen Fragen, stelle ich mir die Frage, ob das Wort "Recherche" oder "Suchmaschiene" auch Anwendung findet,
Full-ACK.
denn die meisten Fragen währen in eigeninitative innerhalb von 5 Minuten gelöst und es müsste nicht auf die mühselige Antwort über die Liste gewartet werden.
Das stimmt wohl, wenn jemand schon Programmiererfahrung in anderen Sprachen hat. Als Programmieranfänger steht man aber denke ich mir mal ziemlich oft wie der Ochs vor'm Berg, weil man die nötigen Begriffe gar nicht kennt, unter denen man nachschlagen sollte.
Wenn ich eine Frage richtig formulieren kann, ist sie eh schon halb gelöst :-)
RTFM-ly yours,
-- Gerhard
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de
participants (7)
-
Achim Domma (ProCoders)
-
Andreas Kaiser
-
daniel.poelzleithner
-
Gerhard Häring
-
Gerson.Kurz@t-online.de
-
Heike C. Zimmerer
-
Ron Opitz