python join list 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 alfabetos em uma string separada por vírgulas para salvar em um arquivo.
Python Join List
Pode-se usar a função join() do python string para unir uma lista de strings. Esta função recebe um iterável
como argumento, e a Lista é um iterável, então podemos usá-la com a Lista. Além disso, a lista deve conter strings. Se tentar unir uma lista de inteiros, ocorrerá uma mensagem de erro como TypeError: item de sequência 0: esperado instância str, encontrado int
. 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 executar 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 Lista?
Uma pergunta que surge com muitos desenvolvedores Python é por que a função join() faz parte de String e não de lista. 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 uma lista de múltiplos tipos de dados
Vamos olhar para um programa onde tentaremos juntar itens de lista com 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 específico 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()
também 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 para voltar à lista original.
Dividindo apenas n vezes
A função split()
que demonstramos no último exemplo também aceita 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 para este 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