Listas Python: Como Adicionar Elementos a uma Lista
Aprenda todas as formas de adicionar elementos a uma lista Python: append, extend, insert, o operador + e atribuição de fatias — com exemplos e armadilhas explicadas.
As listas Python são sequências mutáveis, o que significa que você pode adicionar, remover e modificar elementos após a lista ter sido criada. Este capítulo aborda todos os métodos e operadores que Python oferece para inserir novos elementos em uma lista, explica quando usar cada um e destaca as armadilhas mais comuns.
Métodos e operadores em resumo
| Abordagem | Adiciona | Posição | Modifica no lugar? |
|---|---|---|---|
list.append(x) | um item | final | sim |
list.extend(iterable) | todos os itens do iterável | final | sim |
list.insert(i, x) | um item | índice i | sim |
list + other | todos os itens de other | final | não (retorna nova lista) |
list += other | todos os itens de other | final | sim |
list[i:i] = items | múltiplos itens | índice i | sim |
Usando append()
append() adiciona um único elemento ao final de uma lista. Modifica a lista no lugar e sempre retorna None.
append() aceita qualquer objeto Python — strings, inteiros, booleanos e até outras listas:
nums = [1, 2, 3]
nums.append(4)
print(nums) # [1, 2, 3, 4]Armadilha: append com uma lista cria aninhamento
Se você passar uma lista para append(), Python trata essa lista como um único elemento e cria uma lista aninhada — ele não mescla as duas listas:
fruits = ['apple', 'banana']
fruits.append(['grape', 'kiwi'])
print(fruits) # ['apple', 'banana', ['grape', 'kiwi']]
print(len(fruits)) # 3, not 4Para mesclar duas listas em vez disso, use extend() ou o operador + (abordado abaixo).
Usando extend()
extend() itera sobre um iterável — uma lista, tupla, conjunto ou qualquer outra sequência — e adiciona cada um de seus itens ao final da lista:
append() vs extend() — comparação lado a lado
a = [1, 2, 3]
a.extend([4, 5])
print(a) # [1, 2, 3, 4, 5]
b = [1, 2, 3]
b.append([4, 5])
print(b) # [1, 2, 3, [4, 5]] ← nested!Armadilha: extend com uma string
Strings são iteráveis, então extend() adicionará cada caractere como um elemento separado:
letters = ['a', 'b']
letters.extend('cd')
print(letters) # ['a', 'b', 'c', 'd']Se você quiser adicionar a string inteira como um único elemento, use append().
Usando insert()
insert(i, x) adiciona o elemento x na posição i, deslocando todos os elementos existentes a partir desse índice uma posição para a direita:
Inserir no início de uma lista (adicionar no começo) é um caso de uso comum:
fruits = ['banana', 'orange']
fruits.insert(0, 'apple')
print(fruits) # ['apple', 'banana', 'orange']Armadilha: índice além do comprimento da lista
Se o índice passado for maior que o comprimento atual da lista, Python não gera um erro — ele simplesmente adiciona o elemento ao final:
fruits = ['apple', 'banana']
fruits.insert(100, 'orange')
print(fruits) # ['apple', 'banana', 'orange']Índices negativos também funcionam: insert(-1, x) insere logo antes do último elemento.
Usando o operador +
O operador + concatena duas listas e retorna uma nova lista. Nenhuma das listas originais é modificada:
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print(c) # [1, 2, 3, 4, 5, 6]
print(a) # [1, 2, 3] — unchangedUse + quando precisar manter os originais intactos, ou quando estiver construindo uma expressão de lista em vez de modificar uma.
Usando += (atribuição aumentada)
O operador += é uma abreviação de extend() — ele mescla o iterável do lado direito na lista existente no lugar:
a = [1, 2, 3]
a += [7, 8]
print(a) # [1, 2, 3, 7, 8]Ao contrário de +, += não cria uma nova lista — ele atualiza a no lugar, o que é mais eficiente em termos de memória ao trabalhar com listas grandes.
Inserindo múltiplos itens em uma posição específica (atribuição de fatias)
Para inserir um bloco de elementos no meio de uma lista, a atribuição de fatias é a abordagem mais direta:
nums = [1, 2, 5, 6]
nums[2:2] = [3, 4] # insert [3, 4] starting at index 2
print(nums) # [1, 2, 3, 4, 5, 6]A sintaxe list[i:i] = items abre uma janela de largura zero no índice i e a preenche com os elementos de items. Nenhum item existente é removido.
Escolhendo o método certo
- Adicionar um item ao final: use
append(). É a opção mais simples e rápida para inserção de elemento único. - Mesclar outra lista nesta: use
extend()ou+=. Ambos são equivalentes;+=é ligeiramente mais idiomático em loops. - Adicionar um item em uma posição específica: use
insert(). - Precisa manter a lista original intacta: use o operador
+e atribua o resultado a uma nova variável. - Inserir vários itens no meio: use a atribuição de fatias.
Capítulos relacionados
- Listas Python — criando listas, indexação e propriedades de lista
- Acessar Itens da Lista — lendo elementos por índice e fatia
- Alterar Itens da Lista — atualizando elementos existentes no lugar
- Remover Itens da Lista — excluindo elementos com
remove(),pop()edel - Métodos de Lista — referência completa de todos os métodos de lista integrados