Necesito dividir una cadena por la mitad que ya he hecho con:

firstpart, secondpart = string[:len(string)//2], string[len(string)//2:]

Necesito que se divida en un salto de línea y soy demasiado nuevo en la codificación para saber cómo abordar esto. Cualquier consejo ayudaría.

-2
Bird Leaf 13 jun. 2020 a las 18:28

3 respuestas

La mejor respuesta

Puede usar el método splitlines que funcionará perfectamente en su caso,

str1="hope\n this helps\n you"
print(str1.splitlines())

Salida:

['hope', ' this helps', ' you']

Devuelve una lista de cadenas divididas.

¡Espero que esto te ayude!

0
Prathamesh Jadhav 13 jun. 2020 a las 15:38

Prueba algo como esto:

mystring = """Mae hen wlad fy nhadau yn annwyl i mi,
Gwlad beirdd a chantorion, enwogion o fri;
Ei gwrol ryfelwyr, gwladgarwyr tra mad,
Dros ryddid collasant eu gwaed.

Gwlad!, GWLAD!, pleidiol wyf i'm gwlad.
Tra mor yn fur i'r bur hoff bau,
O bydded i'r hen iaith barhau.

Hen Gymru fynyddig, paradwys y bardd,
Pob dyffryn, pob clogwyn, i'm golwg sydd hardd;
Trwy deimlad gwladgarol, mor swynol yw si
Ei nentydd, afonydd, i fi.
"""

# get the half-way index
halfway = len(mystring) // 2

# get the indices of the nearest \n characters before and after the halfway
try:
    next_one = mystring.index("\n", halfway)
except ValueError:
    next_one = None

try:
    previous_one = mystring.rindex("\n", 0, halfway)
except ValueError:
    previous_one = None

# if no \n found at all, raise an error
if next_one == None and previous_one == None:
    raise ValueError

# or if a \n is only found on one side of halfway, use that one
elif next_one == None:
    pos = previous_one

elif previous_one == None:
    pos = next_one

# or if it is found on both sides of half-way, use whichever is nearer
elif next_one - halfway < halfway - previous_one:
    pos = next_one

else:
    pos = previous_one

# now actually split the string
part1 = mystring[:pos]
part2 = mystring[pos + 1:]

print("FIRST HALF:", part1)
print("==========")
print("SECOND HALF:", part2)

Da:

FIRST HALF: Mae hen wlad fy nhadau yn annwyl i mi,
Gwlad beirdd a chantorion, enwogion o fri;
Ei gwrol ryfelwyr, gwladgarwyr tra mad,
Dros ryddid collasant eu gwaed.

Gwlad!, GWLAD!, pleidiol wyf i'm gwlad.
==========
SECOND HALF: Tra mor yn fur i'r bur hoff bau,
O bydded i'r hen iaith barhau.

Hen Gymru fynyddig, paradwys y bardd,
Pob dyffryn, pob clogwyn, i'm golwg sydd hardd;
Trwy deimlad gwladgarol, mor swynol yw si
Ei nentydd, afonydd, i fi.

0
alaniwi 13 jun. 2020 a las 16:55

Suponiendo que la cadena tiene solo un salto de línea.

Eso sería:

firstpart, secondpart = string.split('\n')
0
simic0de 13 jun. 2020 a las 15:33