Como converter uma lista em uma string em Python (método join)

Aprenda como converter listas de strings ou números em uma única string em Python. Domine o método join(), conversões de mapas e formatação personalizada.

Experimente esta solução no Editor

Visão geral

Durante o processamento de texto, registro em log ou geração de UI, você frequentemente precisará unir uma coleção de valores em uma única string formatada. Por exemplo, converter uma lista de palavras-chave em uma string de tag separada por vírgula ou juntar uma lista de caracteres em uma única palavra. Python fornece um método de string integrado altamente eficiente chamado `.join()` para lidar com esta tarefa.

A sintaxe para junção é `separator.join(my_list)`, onde `separator` é a string que você deseja colocar entre os elementos. Ao contrário de muitas linguagens onde o método join é chamado na própria lista, em Python, `.join()` é um método no *separador de string*. Esse design permite que o método funcione em qualquer contêiner iterável (listas, tuplas, conjuntos) sem forçar as implementações de lista a entender as estruturas de strings.

Uma armadilha comum ocorre ao tentar ingressar em uma lista que contém elementos que não são strings (como números inteiros). O método `.join()` gera um `TypeError` se algum elemento no iterável não for uma string. Para resolver isso, primeiro você deve converter os itens em strings. A maneira mais pitônica de conseguir isso é passar uma expressão geradora ou usar `map(str, my_list)` dentro da chamada `.join()`.

Saída de código e execução

Este script demonstra a união de elementos de string, números e o gerenciamento de exceções de conversão.

list_to_string.py
Experimente no Editor
words = ["Python", "is", "awesome"]
numbers = [1, 2, 3, 4]

# 1. Join a list of strings with spaces
joined_space = " ".join(words)
print("Space separator:", joined_space)

# 2. Join a list of strings with commas
joined_comma = ", ".join(words)
print("Comma separator:", joined_comma)

# 3. Join a list of numbers (requires mapping to string)
try:
    # This raises TypeError because numbers are integers
    invalid_join = "-".join(numbers)
except TypeError:
    print("Cannot join list containing non-string integers directly!")

# Correct way using map()
joined_numbers = "-".join(map(str, numbers))
print("Mapped numbers:", joined_numbers)
Saída terminal
Space separator: Python is awesome
Comma separator: Python, is, awesome
Cannot join list containing non-string integers directly!
Mapped numbers: 1-2-3-4

Implementação passo a passo

  • Defina sua string separadora (por exemplo, ' ' ou ', ').
  • Chame o método .join(list) nessa string separadora.
  • Use map(str, list) para converter quaisquer números inteiros ou valores flutuantes na lista em strings antes de ingressar.

Perguntas frequentes

Por que join é um método de string em vez de um método de lista em Python?

Ao torná-lo um método de string, .join() pode aceitar qualquer objeto iterável (tuplas, geradores, conjuntos), desde que produza strings, evitando a duplicação de código entre tipos.

É eficiente unir strings usando um loop e o operador +=?

Não, += cria repetidamente novos objetos string na memória porque as strings são imutáveis. Usar .join() aloca memória uma vez e é significativamente mais rápido.

Tópicos Relacionados

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.