Делать то, что вы пытаетесь, не очень обычно, поэтому я рекомендую вам потратить некоторое время на изучение словарей и других структур данных, которые могут вам помочь. Сказал, что я вижу способ достичь чего-то вроде этого:
Метод python exe c позволяет динамически c выполнять код python, который в нашем случае означает запуск строки кода из строки.
Итак, если вы обычно используете a = 1
для объявления / атрибуции переменной с именем a
со значением 1
, вы можете достичь того же результата с exec("a = 1")
.
Это позволяет вам использовать форматированные строки для создания переменных из списка имен переменных, заданных в виде строк:
var_names = ["a", "b", "c", "d"]
for var in var_names:
exec("{} = {}".format(var, var_names.index(var)*2))
print(a)
print(b)
print(c)
print(d)
Как только мы приписываем в переменную индекс имени в списке, умноженный на два, должен получиться результат:
0
2
4
6
Мне было не совсем понятно, что вы хотите сделать, поэтому, прочитав еще раз вопрос, я Создалось впечатление, что вы можете захотеть, чтобы значения, возвращаемые методом ExcRange
, хранились в отдельных переменных, а не в списке, и если это так, хорошие новости: python синтаксический сахар здесь, чтобы помочь!
def method():
return 1, 3, 5, 7
a, b, c, d = method()
print(a) # a = 1
print(b) # b = 3
print(c) # c = 5
print(d) # d = 7
В этом случае метод возвращает список с 4 элементами [1,3,5,7]
, но если вы присвоите результат ровно 4 переменным, Python распакует его для вас.
Обратите внимание, что если вы назначаете метод одной переменной, эта переменная будет хранить сам список.
a, b, c, d = method()
print(a) # a = [1, 3, 5, 7]