Python join list significa concatenar una lista de cadenas con un delimitador especificado para formar una cadena. A veces es útil cuando tienes que convertir una lista a una cadena. Por ejemplo, convertir una lista de letras en una cadena separada por comas para guardar en un archivo.
Python Join List
Podemos usar la función join() de cadena en python para unir una lista de cadenas. Esta función toma un iterable
como argumento y la lista es un iterable, por lo que podemos usarla con la lista. Además, la lista debe contener cadenas; si intentas unir una lista de enteros, obtendrás un mensaje de error como TypeError: elemento de secuencia 0: se esperaba una instancia str, se encontró int
. Veamos un breve ejemplo de cómo unir una lista en python para crear una cadena.
vowels = ["a", "e", "i", "o", "u"]
vowelsCSV = ",".join(vowels)
print("Vowels are = ", vowelsCSV)
Cuando ejecutamos el programa anterior, producirá la siguiente salida.
Vowels are = a,e,i,o,u
Python unir dos cadenas
También podemos usar la función join() para unir dos cadenas.
message = "Hello ".join("World")
print(message) #prints 'Hello World'
¿Por qué la función join() está en String y no en List?
Una pregunta que surge con muchos desarrolladores de Python es por qué la función join() forma parte de String y no de list. ¿No sería más fácil recordar y usar la siguiente sintaxis?
vowelsCSV = vowels.join(",")
Existe una popular pregunta en StackOverflow al respecto, aquí estoy enumerando los puntos más importantes de las discusiones que tienen total sentido para mí.
La razón principal es que la función join() puede ser utilizada con cualquier iterable y el resultado siempre es un String, por lo que tiene sentido tener esta función en la API de String en lugar de tenerla en todas las clases iterables.
Uniendo una lista de múltiples tipos de datos
Vamos a ver un programa donde intentaremos unir elementos de una lista que tienen múltiples tipos de datos.
names = ['Java', 'Python', 1]
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
Veamos la salida para este programa: Esto fue solo una demostración de que una lista que contiene múltiples tipos de datos no puede combinarse en una sola cadena con la función
join()
. La lista debe contener solo valores de cadena.
Dividir cadena usando la función join
Podemos usar la función join()
para dividir una cadena con un delimitador especificado también.
names = 'Python'
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
Esto muestra que cuando se pasa una cadena como argumento a la función join(), la divide por caracteres y con el delimitador especificado.
Usando la función split()
Aparte de dividir con la función join()
, la función split()
también se puede usar para dividir una cadena, que funciona casi de la misma manera que la función join()
. Veamos un fragmento de código:
names = ['Java', 'Python', 'Go']
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
split = single_str.split(delimiter)
print('List: {0}'.format(split))
Veamos la salida para este programa: Usamos el mismo delimitador para dividir la cadena nuevamente y volver a la lista original.
División solo n veces
La función split()
que demostramos en el último ejemplo también toma un segundo argumento opcional que indica la cantidad de veces que debe realizarse la operación de división. Aquí hay un programa de ejemplo para demostrar su uso:
names = ['Java', 'Python', 'Go']
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
split = single_str.split(delimiter, 1)
print('List: {0}'.format(split))
Veamos la salida de este programa: Esta vez, la operación de división se realizó solo una vez, como proporcionamos en el parámetro de la función
split()
. Eso es todo para unir una lista para crear una cadena en Python y usar la función split() para obtener la lista original nuevamente.
Source:
https://www.digitalocean.com/community/tutorials/python-join-list