¿Por qué split() no separa cada carácter de una cadena en la salida de la lista?

CorePress2024-01-24  9

para la siguiente función split() en Python:

hallway = "<--<--->->"

list_string = hallway.split()

print(list_string)

El resultado que obtengo es ["<--<--->->"] pero el resultado que deseo es ["<","-"," ;-","<","-","-","-",">","-",">"]

¿Alguien puede explicar por qué mi código no produce el resultado deseado? ¿Y cómo puedo producir el resultado deseado simplemente usando split()?

Por favor, haga sólo una pregunta por cada pregunta SO; Edité la segunda pregunta.En su lugar, cree una segunda pregunta SO para cualquier otra pregunta.

-SuperStormer

27 de marzo de 2021 a las 0:17

split divide una cadena basándose en una cadena delimitadora. Por defecto, la cadena delimitadora que utiliza es un espacio. Dado que no hay espacios en su cadena, ni delimitadores de ningún tipo, la división está bloqueada. "Listificación" su cadena, como muestra Andrej en su respuesta, es el camino correcto a seguir en este caso.

- rhurwitz

27 de marzo de 2021 a las 0:31



------------------------------------

Obtienes este resultado porque estás dividiendo una cadena y el método split() dividirá una lista en caracteres separados.

Prueba esto:

hallway = "<--<--->->"
hallwayLIST = list(hallway)

print(listway)

O:

Crea el "pasillo" variable como una lista para empezar...

hallway = ['<','-','-','<','-','-','-','>','-','>']

La segunda forma tarda mucho más en escribirse y no es tan bonita. Además, acabo de ver que Andrej tuvo la misma idea de convertir la cadena en una lista y guardarla como una var separada.

Respondido

27 de marzo de 2021 a las 1:02

UXOL

UXOL

76

6

6 insignias de bronce



------------------------------------

Puedes llamar a list() en tu cadena:

hallway = "<--<--->->"

list_string = list(hallway)
print(list_string)

Impresiones:

['<', '-', '-', '<', '-', '-', '-', '>', '-', '>']



------------------------------------

obtendrás la misma cadena, porque El método split() divide una cadena en una lista mediante un separador que se le asigna como primer parámetro y, como no se especifica el separador, el separador predeterminado es cualquier espacio en blanco. y tu cadena no tiene espacios en blanco, por lo que vuelveGire la cuerda como está. entonces, para obtener el resultado deseado, intente convertirlo en una lista como la respuesta de Andrej Kesely

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare