Como concatenar duas listas em Python

Ana Maria Gomes
4 minutos de leitura

Conteúdos do tutorial

Ao trabalhar com listas em Python, uma tarefa comum com a qual você pode se deparar é a necessidade de combinar ou concatenar duas listas em uma só. Essa é uma operação fundamental na programação em Python, e existem várias maneiras de alcançá-la. Neste artigo, exploraremos os métodos mais diretos para concatenar duas listas, garantindo que você possa aplicar essas técnicas em seus próprios projetos em Python.

Usando o operador + para Concatenar Listas

A maneira mais simples de concatenar duas listas em Python é usando o operador +. Esse operador permite que você combine as listas de ponta a ponta, criando uma nova lista que inclui todos os elementos de ambas as listas na ordem em que aparecem.

Aqui está um exemplo básico:

lista_um = [1, 2, 3]
lista_dois = [4, 5, 6]

lista_combinada = lista_um + lista_dois
print(lista_combinada)
Testar

Saída:

[1, 2, 3, 4, 5, 6]

Este método cria uma nova lista com uma cópia superficial dos itens de ambas lista_um e lista_dois. Se você precisar de cópias profundas das listas (cópias dos objetos dentro das listas, não apenas das referências), você deve usar a função copy.deepcopy().

Desempacotando Listas com o operador *

Para aqueles que usam Python 3.5 ou posterior, há um método alternativo que utiliza o operador de desempacotamento *. Este método não é apenas conciso, mas também versátil, pois pode ser usado com qualquer iterável, não apenas listas.

Veja como você pode usá-lo:

lista_um = [1, 2, 3]
lista_dois = [4, 5, 6]
lista_combinada = [*lista_um, *lista_dois]
print(lista_combinada)
Testar

Saída:

[1, 2, 3, 4, 5, 6]

Essa abordagem é particularmente útil quando você quer concatenar diferentes tipos de iteráveis, como listas, tuplas e intervalos. Por exemplo:

minha_lista = [1, 2, 3]
minha_tupla = (4, 5)
meu_intervalo = range(6, 8)
lista_combinada = [*minha_lista, *minha_tupla, *meu_intervalo]
print(lista_combinada)
Testar

Saída:

[1, 2, 3, 4, 5, 6, 7]

Encadeando Iteráveis com itertools.chain()

Se você está procurando iterar sobre múltiplas listas sem realmente criar uma nova lista, você pode usar a função itertools.chain(). Esta é uma maneira eficiente em termos de memória para processar elementos de múltiplos iteráveis sequencialmente.

Aqui está um exemplo de como usar itertools.chain():

import itertools

lista_um = [1, 2, 3]
lista_dois = [4, 5, 6]

for item in itertools.chain(lista_um, lista_dois):
    print(item)
Testar

Isso irá imprimir cada item de ambas lista_um e lista_dois sem criar uma nova lista.

Resumo

Concatenar duas listas em Python pode ser feito de várias maneiras. O operador + é o método mais direto para combinar listas. Para mais flexibilidade e legibilidade, especialmente com Python 3.5 ou superior, você pode usar o operador de desempacotamento *. Por último, para cenários onde você não precisa de uma nova lista, mas quer iterar sobre múltiplos iteráveis, itertools.chain() é uma excelente escolha. Cada um desses métodos cria uma cópia superficial dos elementos das listas originais, então esteja atento a isso ao trabalhar com estruturas de dados mais complexas.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse: