hi leute,
irgendwie steh ich komplett auf der leitung.
also ich möchte mehrere variablen dynamisch erstellen
werte1,werte2,werte3,...
z.B. mit einer for-schleife.
ist dies überhaupt möglich oder bin ich jetzt ganz blöd
hoffe mir kann jemand helfen.
danke
variablen dynamisch erstellen
Code: Alles auswählen
In [1]: for i in xrange(10):
...: locals()['foo_%d' % i] = i
...:
...:
In [2]: foo_2
Out[2]: 2
In [3]: foo_5
Out[3]: 5
Grrr, bring Leuten gar nicht erst sowas bei... Natürlich geht alles, aber wenn man sowas in Produktivcode macht...audax hat geschrieben:Das geht allesCode: Alles auswählen
In [1]: for i in xrange(10): ...: locals()['foo_%d' % i] = i ...: ...: In [2]: foo_2 Out[2]: 2 In [3]: foo_5 Out[3]: 5
Es wird unübersichtlich, es wird anstrengend zu benutzen mit'r Zeit und wenn du oder jemand anders den Code noch verstehen möchte... in ein paar Wochen, dann sollte man wirklich lieber auf Lists oder auf die wunderschönen Dicts von Python zurückgreifen. Das da oben ist wirklich eher für... wenige Einsatzzwecke gedacht.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Mir würden da eigentlich nur obskure DSLs einfallen, aber da wäre man in Python sowieso mit externen DSLs die auf spezielle Dictionaries zugreifen besser dran.BlackVivi hat geschrieben:Das da oben ist wirklich eher für... wenige Einsatzzwecke gedacht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Und die Dokumentation sagt zu `locals()` eigentlich:BlackVivi hat geschrieben:Grrr, bring Leuten gar nicht erst sowas bei... Natürlich geht alles, aber wenn man sowas in Produktivcode macht...audax hat geschrieben:Das geht allesCode: Alles auswählen
In [1]: for i in xrange(10): ...: locals()['foo_%d' % i] = i ...: ...: In [2]: foo_2 Out[2]: 2 In [3]: foo_5 Out[3]: 5
Warning: The contents of this dictionary should not be modified; changes may not affect the values of local variables used by the interpreter.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Nichts was sich nicht umgehen liesse.Trundle hat geschrieben:Und die Dokumentation sagt zu `locals()` eigentlich:Warning: The contents of this dictionary should not be modified; changes may not affect the values of local variables used by the interpreter.
Code: Alles auswählen
In [34]: for i in xrange(10):
setattr(__builtins__, 'foo_%d' % i, i)
....:
....:
In [36]: foo_2
Out[36]: 2
In [37]: foo_5
Out[37]: 5