Join
str.join(iterable)
Devuelve una cadena concatenando los elementos de un iterable (como list, string y tuple), separándolos con la cadena str (a la que se aplica el método).
El valor enviado como argumento iterable puede ser una lista, tupla, cadena, diccionario, conjunto o cualquier objeto que posea el método __iter__() o __getitem__(). Si el iterable contiene algún valor que no sea una cadena, eleva una excepción TypeError. Por ejemplo:
>>> '.'.join(('www', 'azulschool', 'net'))
'www.azulschool.net'
- Aplicamos join a una cadena de un punto (se utilizará como separador) y pasamos una tupla con 3 cadenas como argumento de join.
- Vemos que todas las cadenas de la tupla son concatenadas utilizando el punto de la cadena original como separador.
Partition
str.partition(sep)
Devuelve una tupla de 3 elementos, donde se divide la cadena en la primer aparición del parámetro sep. El primer elemento de la tupla será la cadena antes del separador, el segundo elemento será el separador y el tercer elemento será la parte posterior al separador. Por ejemplo:
>>> 'www.azulschool.net'.partition('azulschool')
('www.', 'azulschool', '.net')
- Aplicamos partition a una cadena con el sitio web de Azul School pasando la cadena ‘azulschool’ como argumento de partition.
- Vemos que, como se encuentra el separador, devuelve una tupla separando estos 3 elementos.
Si no se encuentra el separador en la cadena, se devuelve una tupla de 3 elementos, donde el primero será la cadena original y los 2 siguientes serán una cadena vacía. Por ejemplo:
>>> 'www.azulschool.net'.partition('http://')
('www.azulschool.net', '', '')
- Al utilizar la cadena ‘http://’ como argumento de partition para la misma cadena del ejemplo anterior, vemos que, al no encontrar el separador, devuelve el segundo y tercer elemento como cadenas vacías.
Rpartition
str.rpartition(sep)
Similar a partition, a diferencia que parte la cadena en la última aparición del separador sep. Si no se encuentra el separador en la cadena, también devuelve una tupla de 3 elementos, a diferencia de que los primeros 2 valores son cadenas nulas y la última es la cadena original. Ejemplo:
>>> 'www.azulschool.net'.rpartition('.')
('www.azulschool', '.', 'net')
- Aplicamos rpartition a la misma cadena del ejemplo anterior pasando un punto como argumento.
- Vemos que se divide la cadena en la última coincidencia correspondiente al .net y se devuelve una tupla de 3 elementos, siguiendo los mismos principios de partition.
Split
str.split(sep=None, maxsplit=-1)
Devuelve una lista de las palabras existentes en la cadena, usando el parámetro sep como delimitador. Si se especifica maxsplit, se realizarán divisiones como máximo, por ende, la lista tendrá como máximo maxsplit + 1 elementos. Si maxsplit no se especifica, o es -1, implica que no hay límite en el número de divisiones, es decir que se realizan todas las divisiones posibles.
Si no se especifica un separador con el parámetro sep, la cadena será dividida por caracteres no imprimibles (espacios, tabulaciones, saltos de línea). Por ejemplo:
>>> '1\t2\n\n3 4'.split()
['1', '2', '3', '4']
- Utilizamos split sin especificar un separador y vemos que es dividida por todos los caracteres no imprimibles.
- Vale aclarar que dos caracteres no imprimibles juntos son tomados como un solo separador (\n\n).
Si se proporciona sep, dos separadores juntos no son interpretados como uno mismo, sino que se entiende que delimitan cadenas vacías. Por ejemplo:
>>> '1\n2\n\n3\n4'.split('\n')
['1', '2', '', '3', '4']
- Especificamos un salto de línea como argumento de split y vemos que al haber dos saltos de línea juntos (entre medio de 2 y 3), en el resultado se devuelve una cadena vacía.
>>> ' \n\t'.split()
[]
- Al utilizar split en una cadena vacía -o que solamente contenga caracteres no imprimibles- sin especificar un separador, el resultado será una lista vacía.
>>> '1,2,3'.split(sep=',', maxsplit=1)
['1', '2,3']
- Para finalizar, si pasamos el valor 1 como argumento de maxsplit, vemos que solamente se realiza una división.
Rsplit
str.rsplit(sep=None, maxsplit=-1)
Su comportamiento es similar a split, a diferencia de que al especificar un valor para maxsplit, se comienza a separar desde la derecha. Por ejemplo:
>>> '1,2,3'.rsplit(sep=',', maxsplit=1)
['1,2', '3']
- Utilizamos el mismo ejemplo anterior pero con el método rsplit.
- Vemos que el resultado difiere del anterior, donde la primera división se realiza en el valor ‘,3’.
Splitlines
str.splitlines([keepends])
Devuelve una lista de las líneas en la cadena, rompiendo las mismas en los finales de línea. Los finales de línea no son incluidos en la lista resultante, a no ser que se especifique el parámetro keepends y su valor sea True.
Para dividir la cadena, splitlines utiliza un conjunto universal de caracteres para nuevas líneas, como \n, \r,\ \u2028, etc. Por ejemplo:
>>> 'https\nwww\razulschool\r\nnet'.splitlines()
['https', 'www', 'azulschool', 'net']
>>> 'https\nwww\razulschool\r\nnet'.splitlines(keepends=True)
['https\n', 'www\r', 'azulschool\r\n', 'net']
- Utilizamos splitlines sin pasar keepends como argumento y vemos que se devuelven todas las cadenas en una lista, separadas por los caracteres para nuevas líneas.
- Si pasamos keepends como True para la misma cadena, vemos que el resultado contiene el caracter de la nueva línea para cada elemento.