AW: [Python-de] Liste mit Variablen: Ist dasmöglich ?
-----Ursprüngliche Nachricht----- Von: Michael Grabietz [mailto:michael.grabietz@img-online.de] Gesendet: Donnerstag, 11. Dezember 2003 13:52 An: python-de@python.net Betreff: [Python-de] Liste mit Variablen: Ist dasmöglich ?
Ich habe eine weitere Liste mit Werten: --------------------------------------- val_list = [ val1, val2 ] z.B. Strings
Das will ich haben: -------------------
Da ich nur zwei Werte habe, sollen nur die ersten beiden Objekte in my_list mit diesen Werten besetzt werden.
Also so:
var1 soll den Wert val1 zugewiesen bekommen var2 soll den Wert val2 zugewiesen bekommen var3 soll auf 'None' bleiben.
Wenn Du eine Liste von Werten einer Liste von Variablen zuweist, wie in [v1, v2, ... vn] = [w1, w2, ... wm] muss n = m gelten, müssen also beide Listen gleich lang sein. Das, was Du willst, geht in Python nicht (in Perl würde es gehen, doch halte ich das Feature für fehleranfällig). Eine saubere Weise, so etwas zu machen, setzt Listen mit Kopf-Schwanz-Struktur voraus, wie in ML u. ä. Dort kann mann etwa schreiben let u:v:rest = liste; was u und v an die beiden ersten Elementw von liste bindet. Das funktioniert immer, wenn liste wenigstens zwei Elemente hat. Rest enthält immer den Rest von liste, also [], wenn diese genau zwei Elemente hat sl, Rainer Rainer Fischbach Senior Consultant ECS Engineering Consulting & Solutions GmbH Mühlstraße 3 D-92318 Neumarkt Fon +49 9181 4764-84 Fax +49 9181 4764-50 email fischbach@ecs-gmbh.de http://www.ecs-international.de/ _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de
Am Thu, 11 Dec 2003 15:10:07 +0100
Schrieb "Rainer Fischbach"
-----Ursprüngliche Nachricht----- Von: Michael Grabietz [mailto:michael.grabietz@img-online.de] Gesendet: Donnerstag, 11. Dezember 2003 13:52 An: python-de@python.net Betreff: [Python-de] Liste mit Variablen: Ist dasmöglich ?
Ich habe eine weitere Liste mit Werten: --------------------------------------- val_list = [ val1, val2 ] z.B. Strings
Das will ich haben: -------------------
Da ich nur zwei Werte habe, sollen nur die ersten beiden Objekte in my_list mit diesen Werten besetzt werden.
Also so:
var1 soll den Wert val1 zugewiesen bekommen var2 soll den Wert val2 zugewiesen bekommen var3 soll auf 'None' bleiben.
Wenn Du eine Liste von Werten einer Liste von Variablen zuweist, wie in
[v1, v2, ... vn] = [w1, w2, ... wm]
muss n = m gelten, müssen also beide Listen gleich lang sein. Das, was Du willst, geht in Python nicht (in Perl würde es gehen, doch halte ich das Feature für fehleranfällig).
Eine saubere Weise, so etwas zu machen, setzt Listen mit Kopf-Schwanz-Struktur voraus, wie in ML u. ä. Dort kann mann etwa schreiben
let u:v:rest = liste;
was u und v an die beiden ersten Elementw von liste bindet. Das funktioniert immer, wenn liste wenigstens zwei Elemente hat. Rest enthält immer den Rest von liste, also [], wenn diese genau zwei Elemente hat
sl, Rainer
Hallo, warum soll das mit Python nicht gehen? Zumindest in Python 2.3 gehts so a = [None, None, None] b = ["erster", "zweiter"] a[:len(b)] = b print a ['erster', 'zweiter', None] Gruß Fritz _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de
participants (2)
-
Fritz Cizmarov
-
Rainer Fischbach