string.split error? python

a = string.split("Test Test2 Test3"," ") 

Esto devuelve un error:

 Message File Name Line Position Traceback  C:\pyWiz.py 43 AttributeError: 'module' object has no attribute 'split' 

Sí, he importado el módulo de cadena. ¿Por qué está pasando esto?

Utilizar:

 a = 'Test Test2 Test3'.split(' ') 

(es decir, método de split de tipo str ). string.split está en desuso en 2.xy desapareció en 3.x.

string es un módulo mientras buscaba la clase / tipo objeto str . Yo recomendaría hacer esto sin embargo:

 a = "Test Test2 Test3".split() 

¿Por qué no solo "Test Test2 Test3".split() ?

 a = "Test Test2 Test3".split(" ") 
 >>> a = 'jetpack ferret pizza lawyer'.split() >>> a ['jetpack', 'ferret', 'pizza', 'lawyer'] >>> b = 'jetpack ferret pizza lawyer' >>> b.split() ['jetpack', 'ferret', 'pizza', 'lawyer'] >>> b 'jetpack ferret pizza lawyer' >>> c = """very looooooooooooooooooooooong string with trailing random whitespace """ >>> c = c.split() >>> c ['very', 'looooooooooooooooooooooong', 'string', 'with', 'trailing', 'random', 'whitespace'] >>> d = 'dog;_cat;_fish;_'.split(';_') >>> d ['dog', 'cat', 'fish', ''] 

Es necesario tener en cuenta que la mayoría de las veces no es necesario especificar el separador (que puede estar formado por varios caracteres).

Si simplificamos, al no proporcionar argumentos a la función de división, se eliminan todos los espacios en blanco (es decir, espacios, tabulaciones, nuevas líneas, retornos), y este es un comportamiento preferido para trabajar con la entrada de un archivo, un shell, etc., y también notablemente en un uso más común de este lenguaje: codificar de forma rígida una lista de cadenas que ahorra un poco de escritura molesta de comas y comillas.

También tenga en cuenta que obtendrá cadenas vacías en su lista si:

  • la cadena de entrada termina o comienza con uno o más caracteres que definió como separador (vea mi último ejemplo)

  • Hay más de un separador entre el grupo de caracteres que desea obtener.