Entendendo a Diferença Entre os Métodos append() e extend()

Ana Maria Gomes
4 minutos de leitura

Conteúdos do tutorial

Ao trabalhar com listas em Python, você frequentemente se encontrará na necessidade de adicionar elementos a elas. Python oferece dois métodos para fazer isso: append() e extend(). Embora possam parecer semelhantes à primeira vista, eles servem a propósitos diferentes e podem afetar suas listas de maneiras distintas. Vamos entender as diferenças entre esses dois métodos.

Usando append() para Adicionar Elementos a uma Lista

O método append() em Python é bem direto: ele adiciona seu argumento como um único elemento ao final de uma lista. O comprimento da lista aumenta em um, independentemente do tipo de elemento que você está adicionando. Isso significa que se você adicionar uma lista a outra lista, a lista adicionada se torna um único elemento no final da lista original.

Aqui está um exemplo simples:

minha_lista = ['foo', 'bar']
minha_lista.append('baz')
print(minha_lista)
# Saída: ['foo', 'bar', 'baz']
Testar

Note como ‘baz’ é adicionado como um único elemento. Agora, vamos adicionar outra lista:

minha_lista = ['foo', 'bar']
outra_lista = [1, 2, 3]
minha_lista.append(outra_lista)
print(minha_lista)
# Saída: ['foo', 'bar', 'baz', [1, 2, 3]]
Testar

A outra_lista inteira é adicionada como um único elemento, que agora é o último elemento da minha_lista.

Usando extend() para Mesclar Listas

Por outro lado, o método extend() recebe um iterável (como uma lista, conjunto, tupla ou string) e adiciona cada um de seus elementos à lista, efetivamente concatenando-os. Isso significa que o comprimento da lista aumentará pelo número de elementos no iterável que você passar para extend().

Veja como você pode usar extend():

minha_lista = ['foo', 'bar']
outra_lista = [1, 2, 3]
minha_lista.extend(outra_lista)
print(minha_lista)
# Saída: ['foo', 'bar', 1, 2, 3]
Testar

Cada elemento da outra_lista é adicionado individualmente à minha_lista. Se você usar extend() com uma string, cada caractere é adicionado como um elemento separado:

minha_lista = ['foo', 'bar']
minha_lista.extend('baz')
print(minha_lista)
# Saída: ['foo', 'bar', 'b', 'a', 'z']
Testar

Considerações de Desempenho

Quando se trata de desempenho, append() tem complexidade de tempo constante, O(1), o que significa que é muito eficiente. extend(), embora também seja eficiente, tem uma complexidade de tempo de O(k), onde k é o número de elementos no iterável. Se você está adicionando elementos de um iterável, extend() é otimizado e geralmente será mais rápido do que usar append() em um loop.

Resumo

Em resumo, use append() quando você tiver um único elemento para adicionar ao final de uma lista, e ele será adicionado como uma única entrada. Use extend() quando você tiver vários elementos em um iterável que deseja adicionar à lista individualmente. Lembrar dessas diferenças ajudará você a escrever um código Python mais claro e eficiente.

Neste artigo, exploramos as funcionalidades distintas dos métodos append() e extend() em listas de Python. Vimos que append() é ideal para adicionar um único elemento, enquanto extend() é o método ideal para mesclar uma lista com outro iterável. Entendendo e aplicando esses métodos apropriadamente, você pode manipular listas de forma eficaz em seus esforços de programação em Python.

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: