Вывести списки, названия которых находиться в другом списке
Я сейчас не могу вывести данные списков, название которых находятся в другом списке. ниже пример:
all_masses = ['rest1', 'rest2', 'rest3', 'rest4', 'rest5']
rest1 = {'res1': 'key1', 'res1': 'key1'}
rest2 = {'res2': 'key2', 'res2': 'key2'}
rest3 = {'res3': 'key3', 'res3': 'key3'}
rest4 = {'res4': 'key4', 'res4': 'key4'}
rest5 = {'res5': 'key5', 'res5': 'key5'}
print(rest3)
for i in all_masses:
print(i)
В отдельном принте по конкретному названию данные выводятся. Вот когда провожу их по циклу из списка с теми же названиями, выводятся лишь эти самые названия. Возможно где-то что-то нужно указать?
Ответы (1 шт):
Автор решения: Kers
→ Ссылка
Можно например так:
all_masses = ['rest1', 'rest2', 'rest3', 'rest4', 'rest5']
rest1 = {'res1': 'key1', 'res1': 'key1'}
rest2 = {'res2': 'key2', 'res2': 'key2'}
rest3 = {'res3': 'key3', 'res3': 'key3'}
rest4 = {'res4': 'key4', 'res4': 'key4'}
rest5 = {'key1': 'val1', 'key2': 'val2'}
for i in all_masses:
print(locals()[i]) # Locals() преобразование строки в имя переменной
P.S. И со словарями у вас ошибка так как ключи должны быть уникальны. Поэтому в цикле rest1 будет как {'res1': 'key1'}, а не {'res1': 'key1', 'res1': 'key1'}. Переделанный rest5 будет отображаться корректно.