MYYA
您可以使用ast.literal_eval:>>> import ast>>> strs = "['SING', 'Dance'],['Talk', 'Scream'],['Run', 'Walk']">>> ast.literal_eval("[" + strs + "]")[['SING', 'Dance'], ['Talk', 'Scream'], ['Run', 'Walk']]
ABOUTYOU
>>> eval("['SING', 'Dance'],['Talk', 'Scream'],['Run', 'Walk']")>>> (['SING', 'Dance'], ['Talk', 'Scream'], ['Run', 'Walk'])>>>>>> list(eval("['SING', 'Dance'],['Talk', 'Scream'],['Run', 'Walk']"))>>> [['SING', 'Dance'], ['Talk', 'Scream'], ['Run', 'Walk']]为什么eval("'a',2,[12,'bb']")回('a', 2, [12, 'bb'])虽然没有(前面也没有)在评估字符串的结尾?我们必须考虑当解释器遇到被评估的表达式作为表达式的正确部分时该如何执行,该表达式从该表达式中进行解压缩。解释器执行以下行时(其中没有括号)x,y,z = 'a',2,[12,'bb']执行的操作是:-对右侧部分进行评估, eval("'a',2,[12,'bb']")并创建一个元组-对左侧部分进行评估-在左侧元组中拆解右侧元组