var_list = [one, two, three]
num = 1
for var in var_list:
var = num
num += 1
Den oben genannten gibt mir eine Fehlermeldung, dass " man " existiert nicht. Können Sie nicht auf diese Weise zuweisen? Will ich weisen Sie eine inkrementelle Nummer für jeden var in der Liste.
Python Variablen sind Namen für Werte. Sie nicht wirklich "enthalten" die Werte.
for var in var_list:
Ursachen 'var' zu werden, einen Namen für jedes element der Liste, ihrerseits. Innerhalb der Schleifevar = num
berührt nicht die Liste, sondern die Ursachenvar
aufhören zu sein, einen Namen für die Liste ein element, und stattdessen anfangen, einen Namen für was auch immernum
derzeit Namen.Ebenso, wenn Sie die Liste erstellen, wenn
one
,two
undthree
nicht bereits als Namen für Werte, dann kann man Sie nicht benutzen, weil Sie Sie bitten, zu erstellen Sie eine Liste der Werte, die sich im Namen (und dann die Ursachevar_list
zu werden, einen Namen für die Liste). Beachten Sie, dass die Liste nicht wirklich, die Werte enthalten, entweder: es Referenzen, also um Aktien, Sie.Können Sie auf das Wörterbuch der globalen Variablen mit der
globals()
built-in-Funktion. Das Wörterbuch verwendet die Zeichenfolgen für Schlüssel, was bedeutet, Sie können erstellen von Variablen mit dem gegebenen Namen als strings zur Laufzeit, wie folgt:Zum Lesen empfohlen
Nein, es funktioniert so nicht.
Können Sie versuchen:
Dieser Arbeit durch die Definition der Variablen in eine multiple Zuordnung. Nur so können Sie
a, b = 1, 2
. Dies wird entrollen dierange
und weisen Sie die Werte zu den LHS Variablen, so sieht es aus wie deine loop (außer dass es funktioniert).Andere option (die ich nicht empfehlen in ein richtiges Programm...) wäre die Einführung der Variablen-Namen in eine exec-Anweisung:
Eine variable nicht vorhanden ist, bis Sie es schaffen. Einfach Verweis auf eine variable ist nicht genug, um es zu schaffen. Wenn Sie das tun
[one, two, three]
Sie verweisen auf die Variablenone
,two
undthree
bevor Sie erstellt werden.Ich denke, dieser Ansatz ist einfacher.