Вывести содержимое списка, указанного в списке, содержащем имя переменной - PullRequest
0 голосов
/ 07 апреля 2020

Мне кажется, что заголовок не самый лучший, поэтому, надеюсь, я смогу объяснить это правильно.

У меня есть список, содержащий имя и порядок переменных, необходимых для вывода.

outVar = ['a', 'b', 'c']

Но он может содержать разные переменные или в другом порядке

outVar = ['d', 'a', 'c', 'e', 'h', 'f']

Переменные, указанные в списке, имеют значения. Например:

a = 12

Я хочу перебрать outVar и распечатать содержимое переменной. Я думал, что мог бы сделать это так:

for i in range(len(outVar):
    print(outVar[i])  

Но это просто печатает имя переменной. например a, где, как я хочу 12.

Ответы [ 4 ]

1 голос
/ 07 апреля 2020

Вы можете получить доступ к области с помощью функции locals(), которая вернет вам dict, содержащий все локальные переменные.

local_scope = locals()

for name in outVar:
    print(name, local_scope[name]) 
0 голосов
/ 07 апреля 2020

Я не знаю, ожидаете ли вы этого, но я все равно сделаю удар

outVar = ['d', 'a', 'c', 'e', 'h', 'f']
d = {'a':12}
[d.get(i,i) for i in outVar]
0 голосов
/ 07 апреля 2020

В вашем списке вы добавляете переменные в виде символа или строки, используя «a». Просто удалите '' вокруг имен переменных в вашем списке, например: outVar = [a, b, c]

0 голосов
/ 07 апреля 2020

Вместо этого вы можете использовать dict, например,

outVar = {'a': 12, 'b': 8, ...}

и изменить свой l oop на

for i in outVar.keys():
    print(outVar[i])
...