Для более надежного решения, поскольку ввод действительно действителен Python код с несколькими именованными объектами, нарезанными кортежами, вы можете использовать ast.parse
, чтобы проанализировать ввод в узлы AST и перебрать пары имя-кортеж, как это :
import ast
s = '''Dog['bark','eat','fly']
Cat['meow', 'eat ', 'fly']'''
{n.value.value.id: [i.value for i in n.value.slice.value.elts] for n in ast.parse(s).body}
Возвращает:
{'Dog': ['bark', 'eat', 'fly'], 'Cat': ['meow', 'eat ', 'fly']}