2010-08-13 18 views

Respuesta

21
mylist = [int(x) for x in '3 ,2 ,6 '.split(',')] 

Y si no estás seguro de que sólo tendrá dígitos (o desea descartar los otros):

mylist = [int(x) for x in '3 ,2 ,6 '.split(',') if x.strip().isdigit()] 
+3

yo creo que hay un poco hacia atrás: ' '3,2,6'.split (', ')' –

+1

@orangeoctopus Funciona bien de todos modos, 'int' descarta que rodea los espacios en blanco – delnan

+0

@orangeoctupus - Sí , Lo edité cuando me di cuenta de eso. Pero aparentemente soy rápido como un zorro, así que no muestra que lo haya editado (al menos para mí ...);) –

6

Mientras que una solución personalizada que le enseñará sobre Python, por el código de producción utilizando el módulo csv es la mejor idea. Los datos separados por comas pueden volverse más complejos de lo que parece inicialmente.

+0

Me pregunto cómo los enteros separados por coma se vuelven complejos? –

+1

@Anurag: ¿Quién dijo que tenían que ser enteros? El OP solo proporcionó datos de muestra ... – katrielalex

+0

@Anurag: "enséñale a pescar ..." - ¿Alguna vez escuchó esa fábula? Es lo que estoy tratando de hacer aquí. Simplemente analizar una secuencia de comas rara vez es * la * tarea que uno intenta resolver, detrás de esto hay requisitos más complejos. Si estoy equivocado, no hay daño, otras respuestas proporcionan el enfoque más simple –

13
map(int, myString.split(',')) 
+1

+1 por ser estilo funcional –

+5

@Matt: en realidad, aunque personalmente Me encanta el estilo funcional, las comprensiones de la lista son más Pythonic –

+0

@Eli, estoy de acuerdo 100% –

Cuestiones relacionadas