join() no Python: Como Juntar Textos de uma Lista (e Testar ao Vivo)
Lista de textos de um lado, uma única string do outro. Conheça o join(), escolha o separador, descubra por que números dão erro e teste tudo ao vivo aqui.
07/10/2026 Desenvolvimento
Você tem vários textos e precisa de uma única string. Como juntar tudo?
Quando trabalhamos com coleções de textos, muitas vezes precisamos transformar vários elementos em uma única string: uma lista de nomes para mostrar na tela, uma data montada a partir de partes, um caminho de arquivo. É aí que entra o join(). E, como diz o infográfico, juntar textos também é programar!
1. O que é o join()?
join() é um método de strings que junta os elementos de um iterável de strings, colocando um separador entre eles. Repare em um detalhe: quem chama o método é o separador, e o iterável vai entre parênteses.
"separador".join(iteravel_de_strings)
Em linguagem simples, "iterável" é qualquer coisa que o Python consegue percorrer item por item. A lista é o exemplo mais comum (e o que usamos neste artigo), mas tuplas e geradores também funcionam, desde que cada item seja uma string.
", ".join(("Ana", "João")) # tupla
", ".join(nome.title() for nome in nomes) # gerador
2. Exemplo básico
Vamos juntar os nomes de uma lista usando vírgula e espaço como separador:
nomes = ["Ana", "João", "Maria"]
resultado = ", ".join(nomes)
print(resultado)
Ana, João, Maria
O separador aparece só entre os elementos: não sobra vírgula no começo nem no fim.
Teste agora: monte o seu join()
Edite os itens (um por linha) e escolha o separador. O resultado muda em tempo real:
Dica: no campo do separador, \n vale como quebra de linha. Experimente | ou e .
3. O separador pode ser qualquer coisa
Você escolhe o que vai ficar entre os elementos: um espaço, um hífen, uma vírgula, uma quebra de linha ou qualquer texto.
| Separador | Código | Resultado |
|---|---|---|
| Espaço | " ".join(["Python", "é", "incrível"]) | Python é incrível |
| Hífen | "-".join(["2026", "09", "28"]) | 2026-09-28 |
| Vírgula | ",".join(["maçã", "banana", "laranja"]) | maçã,banana,laranja |
| Quebra de linha | "\n".join(["Ana", "João", "Maria"]) | Ana, João e Maria, cada um em uma linha |
4. Atenção: join() trabalha com strings
Se a lista tiver números, o Python não converte sozinho. Veja o erro:
numeros = [10, 20, 30]
"-".join(numeros)
TypeError: sequence item 0: expected str instance, int found
A solução é converter cada elemento para texto antes de juntar. Uma forma é usar map() com str:
numeros = [10, 20, 30]
print("-".join(map(str, numeros)))
10-20-30
Outra forma, muito comum, é uma list comprehension (ou expressão geradora): "-".join(str(n) for n in numeros). As duas fazem a mesma coisa; escolha a que ficar mais legível para você.
Teste agora: o erro do join()
Digite números separados por vírgula e alterne a conversão para ver a diferença:
5. split() e join() são opostos
Enquanto o split() separa uma string em partes, o join() junta várias strings em uma só. Quando você usa o mesmo separador nos dois, um desfaz o que o outro fez:
texto = "Python,FastAPI,Docker"
partes = texto.split(",")
print(partes) # ["Python", "FastAPI", "Docker"]
de_novo = ",".join(partes)
print(de_novo) # "Python,FastAPI,Docker"
Atenção: isso não é uma regra universal. O split() chamado sem separador agrupa espaços consecutivos, então juntar as partes de novo não recupera necessariamente a formatação original:
texto = "Python FastAPI Docker"
partes = texto.split()
print(partes) # ["Python", "FastAPI", "Docker"]
print(" ".join(partes)) # "Python FastAPI Docker" (espaços extras perdidos)
Quer ver o ciclo completo? Veja nosso artigo sobre split() em Python.
Teste agora: split() e join() ao vivo
→→- Voltou ao texto original?
6. Cuidados e boas práticas
- CSV: cuidado. Juntar valores com vírgula serve para demonstrações simples. Para gerar CSV de verdade, com campos que contêm vírgulas, aspas ou quebras de linha, use o módulo
csvda biblioteca padrão, que faz o escape corretamente. - A string original não muda. Strings são imutáveis:
join()devolve uma nova string. Guarde o resultado em uma variável. - Lista vazia?
", ".join([])devolve uma string vazia (""), sem erro. - Uma string também é iterável.
"-".join("abc")devolve"a-b-c", porque cada letra é um elemento. - Prefira join() a concatenar em loop. Montar um texto longo com
+=dentro de um laço cria uma string nova a cada volta; juntar a lista de uma vez comjoin()é mais limpo e costuma ser mais eficiente.
# Evite
texto = ""
for nome in nomes:
texto += nome + ", "
# Prefira
texto = ", ".join(nomes)
Para lembrar
split()= separar.join()= juntar.- O separador vem antes do ponto:
"separador".join(iteravel). Lista é o caso mais comum, mas tupla e gerador também servem. - Só junta strings: com números, use
map(str, lista).
Em resumo
join() é um método simples, mas muito útil para formatar dados, gerar textos, montar listas e trabalhar com informações vindas de bancos de dados, arquivos ou APIs. Abra o seu editor, teste os exemplos e troque os separadores para ver o resultado. Mais um passo no seu roadmap de Python: bora praticar!
Teste seu conhecimento
Responda às perguntas abaixo para revisar os principais pontos deste artigo.
1. O que o método join() faz?
Resposta correta: C) Junta os elementos de um iterável de strings (como uma lista) em uma única string, com um separador entre eles
join() recebe uma lista (ou outro iterável) de strings e devolve uma única string, colocando o separador entre os elementos.
2. Qual é o resultado de ", ".join(["Ana", "João", "Maria"])?
Resposta correta: A) "Ana, João, Maria"
O separador (vírgula e espaço) é colocado entre os elementos, não antes do primeiro nem depois do último.
3. O que acontece com "-".join([10, 20, 30])?
Resposta correta: D) Gera um TypeError, porque join() só aceita strings
join() trabalha com strings. Converta antes, por exemplo com map(str, numeros).
4. Qual é a relação entre split() e join()?
Resposta correta: B) São opostos: split() separa uma string em partes e join() junta várias strings em uma só
Para lembrar: split() = separar, join() = juntar.
5. Qual separador devolve cada elemento em uma linha diferente?
Resposta correta: A) "\n"
"\n".join(lista) usa a quebra de linha como separador.
Continue sua trilha
Trilha de Python · 0% concluído · 0 de 12 conteúdos concluídos
Você concluiu: ✓ join() no Python: Como Juntar Textos de uma Lista (e Testar ao Vivo)