7.11.06

Truco Python: romper una cadena en subcadenas de X tamaño

Con la siguiente función vamos a conseguir dividir un string en X substrings de un tamaño dado (muy útil por ejemplo para completar formularios). Es una función muy recurrida, al menos por mi:

def splitCount(s, count):

return [?".join(x) for x in zip(*[list(s[z::count]) for z in range(count)])]
Para los que empezais con Python, la forma de usarla sería:

myString = ?Esta cadena de pruebas la vamos a romper en cachitos?
LengthOfPieces = 6
a = splitCount(myString, LengthOfPieces)
print a

3 comentarios:

Juan dijo...

Muchísimas gracias por la función! =)

P.D.: Avisa de que tienes ? en vez " xD

Juan dijo...

Hola,

He visto el código, esta muy bien, pero resulta que si la última subcadena tiene una longitud menor a la que yo indico, se ignora.

Aquí te traigo mi versión donde no se ignora la última cadena, seguramente te saldrá mejor que a mi:
/////



def segmenta_cadena (s, count):

lista = list()

for z in range ( len(s) / count ):
lista.append ( a [z * count : z * count + count] )

lista.append ( a [z*count + count : z*count + count + len(s) % count ] )

return lista

/////

Un saludo

P.D.: Soy el mismo de antes xD

Juan dijo...

Hola de nuevo,

He cometido un error!

Te paso la función mejorada:

///



def segmenta_cadena (s, count):

lista = list()
z = -1
for z in range ( len(s) / count ):
lista.append ( s [z * count : z * count + count] )

lista.append ( s [z*count + count : z*count + count + len(s) % count ] )

return lista


///