Unir Lista em Python

unir lista de python significa concatenar uma lista de strings com um delimitador especificado para formar uma string. Às vezes, é útil quando você precisa converter uma lista em uma string. Por exemplo, converter uma lista de letras do alfabeto em uma string separada por vírgulas para salvar em um arquivo.

Unir Lista em Python

Podemos usar a função join() do string em Python para unir uma lista de strings. Esta função recebe um argumento iterável e a lista é um iterável, então podemos usá-la com a lista. Além disso, a lista deve conter strings; se você tentar unir uma lista de inteiros, receberá uma mensagem de erro como TypeError: item de sequência 0: esperado str, instância de int encontrada. Vamos ver um exemplo curto de como unir uma lista em Python para criar uma string.

vowels = ["a", "e", "i", "o", "u"]

vowelsCSV = ",".join(vowels)

print("Vowels are = ", vowelsCSV)

Ao executarmos o programa acima, ele produzirá a seguinte saída.

Vowels are =  a,e,i,o,u

Python unir duas strings

Também podemos usar a função join() para unir duas strings.

message = "Hello ".join("World")

print(message) #prints 'Hello World'

Por que a função join() está em String e não em List?

Uma pergunta que surge com muitos desenvolvedores Python é por que a função join() faz parte de String e não de list. Não seria mais fácil lembrar e usar a sintaxe abaixo?

vowelsCSV = vowels.join(",")

Existe uma pergunta popular no StackOverflow sobre isso, aqui estou listando os pontos mais importantes das discussões que fazem total sentido para mim.

A principal razão é que a função join() pode ser usada com qualquer iterável e o resultado é sempre uma String, então faz sentido ter essa função na API de String em vez de tê-la em todas as classes iteráveis.

Juntando lista de múltiplos tipos de dados

Vamos ver um programa onde tentaremos juntar itens da lista que têm múltiplos tipos de dados.

names = ['Java', 'Python', 1]
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))

Vamos ver a saída para este programa: Isso foi apenas uma demonstração de que uma lista que contém múltiplos tipos de dados não pode ser combinada em uma única String com a função join(). A lista deve conter apenas valores de String.

Dividir String usando a função join

Podemos usar a função join() para dividir uma string com um delimitador especificado também.

names = 'Python'
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))

Isso mostra que quando uma String é passada como argumento para a função join(), ela é dividida por caractere e com o delimitador especificado.

Usando a função split()

Além de dividir com a função join(), a função split() pode ser usada para dividir uma String, funcionando quase da mesma maneira que a função join(). Vamos dar uma olhada em um trecho 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))

Vamos ver a saída para este programa: Usamos o mesmo delimitador para dividir a String novamente e voltar à lista original.

Dividindo apenas n vezes

A função split() que demonstramos no último exemplo também recebe um segundo argumento opcional que indica o número de vezes que a operação de divisão deve ser realizada. Aqui está um programa de exemplo para demonstrar seu 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))

Vamos ver a saída deste programa: Desta vez, a operação de divisão foi realizada apenas uma vez, conforme fornecido no parâmetro da função split(). Isso é tudo para unir uma lista para criar uma string em Python e usar a função split() para obter a lista original novamente.

Source:
https://www.digitalocean.com/community/tutorials/python-join-list