Convierta una cadena que es una lista en una lista apropiada de Python

¿Cómo convierto esta cadena que es una lista en una lista adecuada?

mylist = "['KYS_Q5Aa8', 'KYS_Q5Aa9']" 

Me cansé de esto pero no es lo que esperaba:

 print mylist.split() ["['KYS_Q5Aa8',", "'KYS_Q5Aa9']"] 

Me gustaría así:

 ['KYS_Q5Aa8','KYS_Q5Aa9'] 

Gracias

Use literal_eval del módulo ast :

 >>> import ast >>> ast.literal_eval("['KYS_Q5Aa8', 'KYS_Q5Aa9']") ['KYS_Q5Aa8', 'KYS_Q5Aa9'] 

A diferencia de eval , literal_eval es seguro de usar en cadenas de usuario u otras fonts de cadena desconocidas. Solo comstackrá cadenas en estructuras de datos básicas de Python; todas las demás fallan.

Alternativamente, si su cadena es así (es decir, sin comas incrustadas o significado para analizar dentro de las cadenas con comillas secundarias), podría forzar la división para hacer lo que quiera que haga también:

 >>> mystring = "['KYS_Q5Aa8', 'KYS_Q5Aa9']" >>> [e.strip("' ") for e in mystring.strip('[] ').split(',')] ['KYS_Q5Aa8', 'KYS_Q5Aa9'] 

Puedes usar json library y es más eficiente que eval.

 import json mylist = "['KYS_Q5Aa8', 'KYS_Q5Aa9']" mylist = json.loads(mylist.replace("'",'\"'))