Преобразовать строку в имя списка (PYTHON)

Есть список строк:

['Str0', 'Str1', 'Str2', 'Str3']

Есть ли в Пайтоне возможность преобразовать его в несколько соответствующих списков?

Str0 = []
Str1 = []
Str2 = []
Str3 = []

Ответы (3 шт):

Автор решения: mrBars1k

Не представляю зачем, но вот:

list1 = ['Str0', 'Str1', 'Str2', 'Str3']

for i in list1:
    exec("%s = %s" % (i, [1, 'тест', 4.5]))

print(Str0)
print(Str1)
print(Str2)
print(type(Str3))

Возможно, есть более верные решения, но пока так.

→ Ссылка
Автор решения: Andy Pavlov

По мне лучший вариант создать словарь с соответствующими ключами, но если хочется именно переменные, то можно попробовать поработать со словарем локальных locals() или глобальных globals() переменных.

lst = ['Str0', 'Str1', 'Str2', 'Str3']
g = locals()
for e in lst:
    g[e] = []
print(type(Str0))
print(type(Str1))
print(type(Str2))
print(type(Str3))
→ Ссылка
Автор решения: nexoma

есть вариант решения с https://stackoverflow.com/questions/16681264/convert-list-to-variables-in-python-3

>>> fieldValues = ['Str0', 'Str1', 'Str2', 'Str3']
>>> for val in fieldValues: locals()['{0}'.format(val)] = '111'
... 
>>> locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7efdccc2bc10>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'sys': <module 'sys' (built-in)>, 'ver': '3.10', 'username': 0, 'password': 1, 'enum': <module 'enum' from '/usr/lib64/python3.10/enum.py'>, 'fieldValues': ['Str0', 'Str1', 'Str2', 'Str3'], 'val': 'Str3', 'val1': 1, 'val2': 2, 'valStr0': 'Str0', 'valStr1': 'Str1', 'valStr2': 'Str2', 'valStr3': 'Str3', 'val{0}': 'xStr3', 'valxStr0': 'xStr0', 'valxStr1': 'xStr1', 'valxStr2': 'xStr2', 'valxStr3': 'xStr3', 'x': 'xStr3', 'xStr0': '', 'xStr1': '', 'xStr2': '', 'xStr3': '', 'Str0': '111', 'Str1': '111', 'Str2': '111', 'Str3': '111'}
>>> print(Str0)
111
>>> 
→ Ссылка