Dynamisch Variablen Erzeugen

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
Gast

Hi, gibt es eine möglichkeit, wie man dynamisch Variablen erzeugen kann, wie es z.b. in PHP geht...
in etwa so:

Code: Alles auswählen

for i in range(5):
variable+i = i
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Fies!
Dafür am besten ein dict nehmen:

Code: Alles auswählen

bla = {}
for i in xrange(5):
    bla["variable%s" % i] = i

print bla
Aber warum braucht man sowas???

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Gast

ich würde gerne mehrere labels (tkinter) generieren, die ich aber alle einzeln mit config ansprechen kann
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Ich dachte das wäre einfacher :)
aber was besseres als

Code: Alles auswählen

liste = []
for i in range(10):
  liste.append("variable"+str(i))

fällt mir nicht ein
gruss
*edit* na gut, ohne aktualisieren merkt man auch nicht das
andere schneller waren :?
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Code: Alles auswählen

for i in range(5):
    locals()['item-%i' % i] = i
aber von sowas rate ich ab!!!!

lieber ein dict nehmen
TUFKAB – the user formerly known as blackbird
BlackJack

Da würde ich auch ganz dringend von abraten weil es nicht funktioniert, jedenfalls nicht in Funktionen/Methoden:

Code: Alles auswählen

In [5]: def test():
   .5.:   locals()['spam'] = 42
   .5.:   print spam
   .5.:

In [6]: test()
---------------------------------------------------------------
exceptions.NameError      Traceback (most recent call last)

/home/bj/<console>

/home/bj/<console> in test()

NameError: global name 'spam' is not defined
Antworten