Zastanawiam się, jeśli możliwe jest tworzenie zmiennych i nazwy stosowania ciągów i innych zmiennych na Pythonie. Naprawdę pomogłoby mi się robić.

Na przykład chcę utworzyć 10 zmiennych:

var0
var1
var2
...

Próbowałem zrobić to z taką pętli "dla":

for i in range(10):
    'var'+str(i) = 0

Ale daje mi błąd. Proszę pomóż!

Każda pomoc byłaby bardzo mile widziana.

0
Makis Renieris 5 sierpień 2012, 00:22

3 odpowiedzi

Najlepsza odpowiedź

Nie chcesz używać "zmiennych zmiennych". Chcesz użyć słownika:

>>> vars = {i:0 for i in range(10)}
>>> vars
{0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}

Teraz możesz uzyskać dostęp do każdego elementu taka jak ten var[6] (i nie jesteś ograniczony do liczb całkowitych, ponieważ klucze słownikowe: {x1}}).

Oczywiście, dla specjalnego przypadku od 0 do 9 można również użyć listy:

>>> vars = [0 for i in range(10)]
>>> vars
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
6
Tim Pietzcker 4 sierpień 2012, 20:28

Musisz użyć listy, a nie tony zmiennych:

>>> var = [1, 2, 5, 6, 7, 10]
>>> var[1]
2
>>> var [2]
5
>>>

Moja zasada jest taka, że jeśli więcej niż trzy zmienne mają podobne nazwy (var1, var2 i var3, na przykład, umieść je na liście.

6
Blender 4 sierpień 2012, 20:33

Oto, co możesz zrobić:

for i in range(10):
    locals()['var' + str(i)] = 0

print var3
-1
Yevgen Yampolskiy 4 sierpień 2012, 20:31