Seite 1 von 1
Variable pro Schleifendurchlauf erstellen
Verfasst: Sonntag 1. Juni 2008, 10:12
von Peak_me
Hallo!
Ich möchte in einer Schleife pro Schleifendurchlauf eine Variable erstellen.
"variable,i" soll die Variable "variable1" bei i=i liefern, bei i=2 soll es "variable2" werden; und so weiter.
Wie ist die Syntax dazu?
Oder wie heißt dieses Problem? Ich habe in den Python-Tutorials nichts gefunden.
Danke schonmal!,
Gruß
peak
Verfasst: Sonntag 1. Juni 2008, 10:18
von Trundle
Du suchst ein "Dictionary".
Verfasst: Sonntag 1. Juni 2008, 10:42
von audax
Code: Alles auswählen
data = {}
for i in xrange(5):
data[i] = blabla
print data[1], data[0], data[2]
Verfasst: Sonntag 1. Juni 2008, 11:17
von sma
In diesem Fall reicht aber auch eine Liste (a.k.a. Array, Feld, Vektor).
Stefan
Verfasst: Sonntag 1. Juni 2008, 11:31
von Trundle
sma hat geschrieben:In diesem Fall reicht aber auch eine Liste (a.k.a. Array, Feld, Vektor).
Ja, kam mir dann auch, ist wahrscheinlich auch geschickter. Ich schieb das einfach mal auf das heiße Wetter.
Verfasst: Sonntag 1. Juni 2008, 11:32
von Peak_me
Hm...
Eine Liste reicht eben nicht aus.
Damit es klarer wird, hier mal ein Beispiel:
Code: Alles auswählen
for i in range(3):
x+=50
y+=40
if i==0:
photo0= ImageTk.PhotoImage(file= "C:/bla.jpg")
if i==1:
photo1= ImageTk.PhotoImage(file= "C:/bla2.jpg")
if i==2:
photo2= ImageTk.PhotoImage(file= "C:/bla2.jpg")
Ich möchte diese If-Fälle vermeiden und stattdessen in eine Zeile schreiben, dass die Variable photoX (X=i) selbst erstellt wird.
Es sollen also nach dem Muster photo,i genauso viele Variablen erstellt werden, wie es Schleifendurchläufe gibt.
Vielleicht sowas wie
?
Verfasst: Sonntag 1. Juni 2008, 11:37
von Trundle
Warum reicht da keine Liste?
Code: Alles auswählen
photos = list()
for i in xrange(3):
photo = ImageTk.PhotoImage(file="C:/bla%i.jpg" % i)
photos.append(photo)
# Irgendwas mit `photo` machen
# photos[0] wäre jetzt quasi ``photo0``
Verfasst: Sonntag 1. Juni 2008, 13:51
von Peak_me
Ja, da hast du Recht.
Ich dachte nicht, dass man in eine Liste auch Fotos packen kann.
Danke für die Hilfe!