AW: [Python-de] Liste mit Variablen: Ist dasmöglich ?

Rainer Fischbach fischbach at ecs-gmbh.de
Don Dez 11 15:10:07 CET 2003


-----Ursprüngliche Nachricht-----
Von: Michael Grabietz [mailto:michael.grabietz at img-online.de] 
Gesendet: Donnerstag, 11. Dezember 2003 13:52
An: python-de at 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 at ecs-gmbh.de
http://www.ecs-international.de/