Iteration mit umbenennen der Variablen

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
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

Dienstag 8. Januar 2008, 15:38

Hi,
ich möchte folgende Iteration machen:

Code: Alles auswählen

lw=5
sw=2
i=1
while True:
    ui=2*lw
    vedi=5*ui
    Aswi=(vedi-1)*ui/2
    print "Asw%d=%d" % (i,Aswi)
    print "ved%d=%d" % (i,vedi)
    print "u%d=%d" % (i,ui)
    Vrdcta=1000
    lw+=i*sw
    i+=1
    if vedi>=Vrdcta:
        break
Aber: die Variablen ui, vedi und Aswi sollen mit i01....n umbenannt werden :
also für i=1:
u1, ved1, Asw1

für i=2
u2, ved2, Asw2

usw.


ist so etwas möglich ? wenn ja, wie?
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Dienstag 8. Januar 2008, 15:45

Hallo mathi!

Es gibt so viele Möglichkeiten zu Gruppieren: zB Listen, Dictionaries sowie Objekte.
Diese dynamische Namensvergabe für Variablen macht keinen Sinn.
Denk lieber nochmal drüber nach.
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

Dienstag 8. Januar 2008, 16:12

Aber ich möchte mit den Variablen weiter arbeiten und habe keine Ahnung in welche Richtung ich denken soll.
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Dienstag 8. Januar 2008, 16:39

Du könntest die Daten doch zum Beispiel als Tuple in einer Liste speichern:

Code: Alles auswählen

vedi = 0
Vrdcta = 1000
lw = 5 
sw = 2 
i = 1
my_container = [] 
while vedi < Vrdcta: 
    u = 2 * lw 
    ved = 5 * ui 
    Asw = (ved - 1) * (u / 2)
    lw += i * sw 
    i += 1
    my_container.append((u, ved, Asw))

for i, data in enumerate(my_container):
    u, ved, Asw = data
    print "Asw%d=%d" % (i,Asw) 
    print "ved%d=%d" % (i,ved) 
    print "u%d=%d" % (i,u) 
Hab das Ding einfach mal Container genannt, da ich keinen blassen Schimmer habe was die Werte heißen sollen.
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

Mittwoch 9. Januar 2008, 09:26

Danke :D

die Lösung ist für meine Zwecke super
Antworten