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.
Gast

Dynamisch Variablen Erzeugen

Beitragvon Gast » Donnerstag 24. November 2005, 15:34

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
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 24. November 2005, 16:04

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???

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Gast

Beitragvon Gast » Donnerstag 24. November 2005, 16:06

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

Beitragvon pr0stAta » Donnerstag 24. November 2005, 16:08

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 :?
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Donnerstag 24. November 2005, 19:15

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

Beitragvon BlackJack » Donnerstag 24. November 2005, 23:37

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

Wer ist online?

Mitglieder in diesem Forum: harryberlin