Он немного более гибкий, чем у Satoru, и не использует никаких библиотек. Тем не менее, это не будет работать с более глубоко вложенными списками. Для этого, я думаю, вам понадобится рекурсивная функция (или цикл) или eval.
str = "[[0,0,0],[0,0,1],[1,1,0]]"
strs = str.replace('[','').split('],')
lists = [map(int, s.replace(']','').split(',')) for s in strs]
lists теперь содержит список нужных вам списков.
>>> import ast
>>> ast.literal_eval('[[0,0,0], [0,0,1], [1,1,0]]')
[[0, 0, 0], [0, 0, 1], [1, 1, 0]]
Для кортежей
>>> ast.literal_eval('[(0,0,0), (0,0,1), (1,1,0)]')
[(0, 0, 0), (0, 0, 1), (1, 1, 0)]
>>> import json
>>> json.loads('[[0,0,0], [0,0,1], [1,1,0]]')
[[0, 0, 0], [0, 0, 1], [1, 1, 0]]
>>> import re
>>> list_strs = re.findall(r'\[\d+\,\d+\,\d+\]', s)
>>> [[[int(i)] for i in l[1:-1].split(',')] for l in list_str]
>>> string='[[0,0,0], [0,0,1], [1,1,0]]'
>>> eval(string)
[[0, 0, 0], [0, 0, 1], [1, 1, 0]]
>>> a=eval(string)
>>> a
[[0, 0, 0], [0, 0, 1], [1, 1, 0]]
перед передачей строки в eval ()
сначала выполните необходимую дезинфекцию.
[[int (i) для i в x.strip ("[]"). Split (",")] для x в s.strip ('[]'). Split ("], ")]
понимание списка в понимании списка ... но это растопит ваш мозг