multiple into delimiters python string split delimiter

into - Python: dividido por 1 o más apariciones de un delimitador



split python 3 (5)

¿Simplemente no das ningún delímetro?

>>> a="test result" >>> a.split() [''test'', ''result'']

Tengo una cadena formateada de un archivo de registro, que se ve así:

>>> a="test result"

Es decir, la prueba y el resultado están divididos por algunos espacios; probablemente se creó usando una cadena formateada que dio un espaciado constante a la test .

La división simple no hará el truco:

>>> a.split(" ") [''test'', '''', '''', '''', ... '''', '''', '''', '''', '''', '''', '''', '''', '''', '''', '''', ''result'']

split(DELIMITER, COUNT) borró algunos valores innecesarios:

>>> a.split(" ",1) [''test'', '' result'']

Esto ayudó, pero por supuesto, realmente necesito:

[''test'', ''result'']

Puedo usar split() seguido de map + strip() , pero me pregunto si hay una forma más pitonica de hacerlo.

Gracias,

Adán

ACTUALIZACIÓN: ¡ Una solución tan simple! Gracias a todos.


Cualquier problema con simple a.split() ?


Solo esto debería funcionar:

a.split()

Ejemplo:

>>> ''a b''.split('' '') [''a'', '''', '''', '''', '''', '''', ''b''] >>> ''a b''.split() [''a'', ''b'']

De la documentación :

Si no se especifica sep o None, se aplicará un algoritmo de división diferente: las ejecuciones de espacios en blanco consecutivos se consideran como un único separador, y el resultado no contendrá cadenas vacías al inicio o al final si la cadena tiene espacios en blanco iniciales o finales. En consecuencia, dividir una cadena vacía o una cadena que consta de solo espacios en blanco con un separador Ninguno devuelve [].


>>> import re >>> a="test result" >>> re.split(" +",a) [''test'', ''result''] >>> a.split() [''test'', ''result'']


Solo agregue una forma más, más útil en los casos en que el delimitador es diferente del espacio, y s.split () no funcionará.

como str = "Python, es ,, más ,,,,, flexible".

In [27]: s = "Python is more flexible" In [28]: str_list = list(filter(lambda x: len(x) > 0, s.split(" "))) In [29]: str_list Out[29]: [''Python'', ''is'', ''more'', ''flexible'']