Unir cadenas en Python

Unir cadenas en Python es una tarea muy común y existen diversas formas de realizarla. A esta tarea se le denomina como concatenación, a continuación explicaremos más sobre cómo realizar concatenación de cadenas en Python.

 

Concatenar cadenas en Python

En Python, hay varias formas distintas de concatenar o combinar cadenas. La cadena resultante de la concatenación también es tratada como un objeto string por Python. Con el fin de fusionar dos strings en un único objeto string podemos usar el operador “+”. Veamos un ejemplo:

str_1 = 'Hola '
str_2 = 'Mundo!'
str_3 = str_1 + str_2
print(str_3)  # Salida: Hola Mundo!

Este método de concatenación une las cadenas tal cual son, es decir, sin ningún tipo de separador entre ellas. En el ejemplo anterior las cadenas quedan separadas por un espacio al concatenarlas porque la primera cadena tenía un espacio al final.

Concatenar cadenas con un separador

Si nuestro objetivo es unir una serie de cadenas en Python con un determinado separador tenemos dos opciones:

  • Crear un algoritmo que lo realice
  • Utilizar la función nativa de Python str.join()

Unir cadenas en Python usando un algoritmo propio

Unir varias cadenas en Python es muy sencillo usando un bucle for y uniendo las subcadenas en una cadena resultante. Para ello he creado una función que se puede ver a continuación:

def join_str(*strings, sep=' '):
    str = ''
    for i in range(len(strings)):
        if i == len(strings)-1:
            """ Para que al final no se ponga el separador """
            str += strings[i]
        else:
            str += strings[i]+sep

    return str

La función hace uso de una funcionalidad de Python, los parámetros arbitrarios. Te dejo una imagen que la explica de forma sencilla y rápida:

El algoritmo va recorriendo el conjunto de parámetros arbitrarios uniendo las subcadenas en una cadena final utilizando el separador (sep). En el caso de la última subcadena no se concatena el separador, ya que no hay mas elementos para unir.

El separador por defecto es el espacio en blanco indicado con otra funcionalidad de Python (parámetros por defecto), pero para cualquier otro caso se puede modificar.

Para probar la función podemos ejecutar el siguiente código:

print(join_str('Hola', 'Mundo', '!!!'))  # Salida: Hola Mundo !!!
print(join_str('Hola', 'Mundo', '!!!', sep=', ')) # Salida: Hola, Mundo, !!!

En la primera instrucción no se indica el separador, por lo tanto, la unión se realiza con espacios en blanco. En el segundo caso, la instrucción sí incluye un separador específico en la invocación de la función, con lo cual la unión se realizará con ese separador.

Unir cadenas en Python con str.join()

Esta es la forma más rápida y sencilla de unir cadenas en Python, ya que solo tenemos invocar la función nativa join() según queramos realizar la unión.

La función join() se utiliza de la siguiente forma:

'[separador]'.join(tupla o lista)

La invocación se realiza a partir de una cadena que se usará como separador y se introducirá un conjunto de cadenas en forma de tupla o lista como argumento. Veamos un ejemplo práctico comparando esta forma con la anterior:

print(join_str('Hola', 'Mundo', '!!!', sep=', ')) # Salida: Hola, Mundo, !!!
print(', '.join(['Hola','Mundo','!!!'])) # Salida: Hola, Mundo, !!!

Cómo podemos apreciar las invocaciones están enfocadas de formas distintas, pero el resultado en ambos casos es el mismo.

 

Deja un comentario