How to convert a string into a list

MRAB python at mrabarnett.plus.com
Tue Oct 5 04:28:43 CEST 2010


On 05/10/2010 02:10, Mark Phillips wrote:
> I have the following string - "['1', '2']" that I need to convert into a
> list of integers - [1,2]. The string can contain from 1 to many
> integers. Eg "['1', '7', '4',......,'n']" (values are not sequential)
>
> What would be the best way to do this? I don't want to use eval, as the
> string is coming from an untrusted source.
>
I'd probably use a regex, although others might think it's overkill. :-)

 >>> import re
 >>> s = "['1', '2']"
 >>> [int(n) for n in re.findall(r'-?\d+', s)]
[1, 2]

An alternative is:

 >>> s = "['1', '2']"
 >>> [int(n.strip("'[] ")) for n in s.split(",")]
[1, 2]



More information about the Python-list mailing list