O Python extend permite que pro­gra­ma­do­res adicionem elementos de uma segunda lista a uma lista já existente. É im­por­tante notar que os elementos a serem anexados são adi­ci­o­na­dos ao final da lista. Para adicionar um elemento em um índice es­pe­cí­fico de uma lista ou anexar elementos in­di­vi­du­al­mente, você deve usar o Python insert ou Python append.

Função e sintaxe do Python extend

O método extend() em Python opera de maneira simples. Ele adiciona uma segunda lista ao final de uma lista es­pe­ci­fi­cada, ou seja, ele estende a primeira lista adi­ci­o­nando elementos de uma segunda lista. Esse processo é comumente chamado de con­ca­te­na­ção em pro­gra­ma­ção. A sintaxe de extend() é simples:

lista.extend(lista2)
python

Nesse exemplo, os elementos de lista2 são adi­ci­o­na­dos ao final de lista. No entanto, uma nova lista com todos os elementos não é retornada. Em vez disso, a lista original é di­re­ta­mente mo­di­fi­cada. A segunda lista, contudo, não é mo­di­fi­cada, ao contrário da original. A fun­ci­o­na­li­dade de extend() é ilustrada no exemplo a seguir:

lista = ["um", "dois", "três"]
lista2 = ["quatro", "cinco", "seis"]
lista.extend(lista2)
print(lista) # saída: ['um', 'dois', 'três', 'quatro', 'cinco', 'seis']
lista.extend([7, 8, 9])
print(lista) # saída: ['um', 'dois', 'três', 'quatro', 'cinco', 'seis', 7, 8, 9]
python

Como pode-se perceber, nesse código o método se comporta conforme o esperado. Você pode criar a lista a ser anexada como um objeto, com an­te­ce­dên­cia, ou passá-la como um parâmetro ao invocar o método. O exemplo demonstra que os elementos nas listas a serem anexadas podem ter qualquer tipo de dado. Isso é possível porque uma lista em Python pode ser he­te­ro­gê­nea, ou seja, conter elementos de di­fe­ren­tes tipos de dados.

Embora extend() seja mais usado para con­ca­te­nar duas listas, você pode aplicar o método para atingir outros objetivos. Além de listas como pa­râ­me­tros, o Python extend aceita objetos iteráveis (objetos contendo elementos sobre os quais se pode iterar) como entrada. Esses iteráveis incluem listas em Python, strings em Python e di­ci­o­ná­rios em Python. Quando extend() é chamado, qualquer iterável pode ser passado como parâmetro. Os com­po­nen­tes do iterável são, então, adi­ci­o­na­dos à lista, um de cada vez. Esse recurso é ilustrado no exemplo a seguir.

chars = ['a', 'b', 'c']
string = "def"
chars.extend(string)
print(chars) # Saída: ['a', 'b', 'c', 'd', 'e', 'f']
python

Aqui, uma string de ca­rac­te­res foi passada como argumento. Os com­po­nen­tes in­di­vi­du­ais da string (ca­rac­te­res) foram adi­ci­o­na­dos à lista um de cada vez.

Al­ter­na­ti­vas ao Python extend

O método extend é uma solução elegante para adicionar elementos de uma lista a outra. Mas existem algumas al­ter­na­ti­vas que você também deve conhecer.

Operador de adição

O operador de adição (sinal de mais) é um dos ope­ra­do­res em Python mais comuns, sendo pre­do­mi­nan­te­mente usado para somar dois números. No entanto, ele pode ser usado para outros pro­pó­si­tos, incluindo na junção de listas. Com o operador de adição, é possível mesclar qualquer número de listas ao mesmo tempo. Isso é ilustrado no exemplo a seguir:

europa = ["Alemanha", "Finlândia"]
asia = ["China", "Índia"]
africa = ["Sudão", "Mali"]
paises = europa + asia + africa
print(europa) # saída: ['Alemanha', 'Finlândia']
print(asia) # saída: ['China', 'Índia']
print(africa) # saída: ['Sudão', 'Mali']
print(paises) # saída: ['Alemanha', 'Finlândia', 'China', 'Índia', 'Sudão', 'Mali']
python

Como observado, a abordagem al­ter­na­tiva usando o operador de adição (+) retorna um resultado quase idêntico ao método extend(). No entanto, há uma diferença crucial entre os dois: ao contrário de extend(), o operador de adição não modifica as listas originais; em vez disso, ele gera e retorna uma nova lista. Como um novo objeto de lista é criado na memória quando se usa o operador de adição, ele pode ser con­si­de­rado menos eficiente se comparado ao extend() ao mesclar duas listas. Isso deve ser levado em con­si­de­ra­ção se você estiver tra­ba­lhando com listas muito grandes ou se quiser que o seu programa seja o mais eficiente possível.

Dica

Usar o operador de con­ca­te­na­ção (+=) em vez do operador de adição modifica a lista original sem criar uma nova lista, evitando assim perdas de efi­ci­ên­cia. No entanto, é im­por­tante notar que extend() e += podem não se comportar uni­for­me­mente para todos os iteráveis.

Método append

O método append tem fun­ci­o­na­li­dade se­me­lhante ao extend(), mas possui uma ca­rac­te­rís­tica distinta: ele é capaz de adicionar um único elemento a uma lista. Con­se­quen­te­mente, não é possível passar um iterável como parâmetro para esse método. Vamos ilustrar isso com o exemplo a seguir:

lista = [0, 1, 1, 2]
lista.extend([3])
print(lista) # saída: [0, 1, 1, 2, 3]
lista.append(5)
print(lista) # saída: [0, 1, 1, 2, 3, 5]
python

Aqui, extend() e append() produzem o mesmo resultado, embora com uma ligeira diferença. Com append(), você não precisa es­pe­ci­fi­car o elemento a ser adi­ci­o­nado entre colchetes. No entanto, ao usar append() para adicionar múltiplos elementos à lista, você precisa iterar sobre uma lista existente usando um Python loop for. Portanto, append() é útil apenas se for lidar com um único elemento, podendo não ser adequado para adicionar múltiplos elementos de forma eficiente.

Dica

Quer publicar seu site ou aplicação web de forma rápida e fácil usando o GitHub? Então o Deploy Now da IONOS é a pla­ta­forma perfeita para você.

Ir para o menu principal