una separar palabra lista letras contar concatenar comparar como caracteres cadenas python split

palabra - separar python



Dividir cadena en dos partes solamente (9)

Esta pregunta ya tiene una respuesta aquí:

Tengo una cuerda

s = ''abcd qwrre qwedsasd zxcwsacds''

Quiero dividir cualquier cadena en solo dos partes en la primera aparición de un espacio en blanco. es decir a=''abcd'' y b=''qwrre qwedsasd zxcwsacds''

Si uso a, b=split('' '') me da un error porque hay demasiados valores para desempaquetar.


1.Usted puede dividir la cadena de esta manera.

a = temp.substring(0, s.indexOf('' '')); b = temp.substring(s.indexOf('' '') + 1);

2.o puedes hacer:

a = s[0: s.find('' '')] b = s[s.find('' '') + 1: ]

3.

a,b = s.split('' '', 1) print(a) print(b)


De los documentos de Python.

str.split (sep = Ninguna, maxsplit = -1)

Devuelve una lista de las palabras en la cadena, usando sep como la cadena delimitadora. Si se proporciona maxsplit, como máximo se realizan las divisiones de maxsplit (por lo tanto, la lista tendrá como máximo maxsplit + 1 elementos). Si no se especifica maxsplit o -1, entonces no hay límite en el número de divisiones (se realizan todas las divisiones posibles).

''1 2 3''.split(maxsplit=1) # [''1'', ''2 3'']


Entonces, hay un segundo parámetro que puede pasar, como muchos han señalado:

>>> a, b = "foo bar".split('' '', 1)

pero nadie está señalando esto:

>>> a, b = "foobar".split('' '', 1) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: need more than 1 value to unpack

No querrás usar esto porque no es seguro a menos que tengas la garantía de tener una cadena que tenga solo un espacio. Es mejor dividirlo y luego verificar cuántas divisiones tienes y luego descomprimirlas:

>>> parts = "foo bar".split('' '', 1) >>> if len(parts) == 2: >>> a, b = parts


Le falta un parámetro más en su división, el número de ocurrencias, intente esto;

s=''abcd qwrre qwedsasd zxcwsacds'' >>> a, b = s.split('' '', 1) >>> print(a, b)


Podría usar a,b = split('' '', 1) .

El segundo argumento 1 es el número máximo de divisiones que se realizarían.

s = ''abcd efgh hijk'' a,b = s.split('' '', 1) print(a) #abcd print(b) #efgh hijk

Para obtener más información sobre la función de división de cadenas, consulte str.split en el manual .


Prueba esto:

s = ''abcd qwrre qwedsasd zxcwsacds'' s1 = s.split()[0] s2 = '' ''.join(s.split()[1:]) print(s1) print(s2)

Salida:

abcd qwrre qwedsasd zxcwsacds

O:

new_s = ''''.join(['' s '' if i.isspace() else i for i in s]) a,b = new_s.replace('' s'','''',1).split('' s '') print(a) print(b)

Salida:

abcd qwrre qwedsasd zxcwsacds

O incluso mejor dividido también para pestañas y nuevas líneas:

a,b = s.split(None,1) print(a) print(b)

Salida:

abcd qwrre qwedsasd zxcwsacds


Puede usar una partition método de cadena estándar que busca un separador determinado y devuelve una tupla de 3 que consta de la parte de cadena anterior, el propio separador y la parte posterior.

>>> s = ''abcd qwrre qwedsasd zxcwsacds'' >>> s.partition('' '') (''abcd'', '' '', ''qwrre qwedsasd zxcwsacds'')


Puedes resolver este problema usando la "expresión en estrella" de python.

s=''abcd qwrre qwedsasd zxcwsacds'' a = s.split() first, *second = a second = " ".join(second)

"first" toma el primer elemento de la lista y "* second" toma los elementos restantes.

>>> first ''abcd'' >>> second ''qwrre'', ''qwedsasd'', ''zxcwsacds''


#!python2 s=''abcd qwrre qwedsasd zxcwsacds'' s1 = s[0: s.find('' '')] s2 = s[s.find('' '') + 1: ] print s1 print s2 '''''' abcd qwrre qwedsasd zxcwsacds ''''''