W3docs

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

AbordagemAdicionaPosiçãoModifica no lugar?
list.append(x)um itemfinalsim
list.extend(iterable)todos os itens do iterávelfinalsim
list.insert(i, x)um itemíndice isim
list + othertodos os itens de otherfinalnão (retorna nova lista)
list += othertodos os itens de otherfinalsim
list[i:i] = itemsmúltiplos itensíndice isim

Usando append()

append() adiciona um único elemento ao final de uma lista. Modifica a lista no lugar e sempre retorna None.

python— editable, runs on the server

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 4

Para 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:

python— editable, runs on the server

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:

python— editable, runs on the server

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]  — unchanged

Use + 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

Prática

Prática
Which of the following methods add items to a Python list?
Which of the following methods add items to a Python list?
Was this page helpful?