Pular para o conteúdo principal

Como usar o método pop() do Python

Aprenda a usar o método pop() do Python para remover elementos de listas e dicionários, inclusive durante a iteração. Saiba evitar erros comuns como IndexError e KeyError.
Atualizado 22 de abr. de 2026  · 9 min lido

O método pop() é uma função importante do Python usada na manipulação de dados para remover e retornar um elemento específico de uma lista ou dicionário. Programadores em Python preferem o pop() porque é uma forma especialmente simples de modificar estruturas de dados como listas e dicionários.

Antes de entrar nos detalhes, recomendo muito o curso Introduction to Python da DataCamp para aprender o básico da linguagem. O Python Cheat Sheet for Beginners também ajuda a consultar e entender a sintaxe e as diferentes funções do Python.

Resposta rápida: como usar o método pop() no Python

O método pop() é usado em listas e dicionários para remover itens específicos e retornar o valor. Vou mostrar um exemplo rápido para ambos. O primeiro exemplo mostra como remover um item de uma lista usando pop(). O código a seguir imprime 5.

# Create a list
my_list = [1, 2, 3, 4, 5]

# Removes and returns the last element of the list
last_element = my_list.pop()
print(last_element)

O próximo exemplo mostra como usar pop() para remover uma chave específica de um dicionário. O código a seguir imprime 3.

# Create a dictionary
my_dict = {'a': 1, 'b': 2, 'c': 3}

# Removes and returns the value associated with the key 'b'
value = my_dict.pop('c')
print(value)

Usando pop() com listas

O método pop() é usado com listas para remover e retornar o elemento especificado dessa lista. A sintaxe do pop() com listas é mostrada abaixo.

list.pop([index])

Ao usar pop() com listas, saiba que ele pode receber um parâmetro opcional para indicar o índice a ser removido. Se nenhum parâmetro for informado, pop() remove e retorna o último elemento da lista.

Se, em vez disso, você optar por especificar o índice explicitamente, atenção: se fizer isso de forma incorreta, será lançado um IndexError se o índice estiver fora do intervalo. Vamos ver abaixo os diferentes casos de uso de pop() com listas.

Usando pop() para remover elemento pelo índice

Você também pode usar um índice positivo ou negativo como argumento em pop() para indicar o elemento a remover da lista. Em Python, índices positivos começam em 0 no início da lista. Índices negativos começam em -1 no final da lista.

Os exemplos a seguir mostram três formas de remover elementos de uma lista. Em todos os casos, a saída do código será 5.

# Create a list
my_list = [1, 2, 3, 4, 5]

# Removes and returns the last element of the list
last_element = my_list.pop()
print(last_element)
# Create a list
my_list = [1, 2, 3, 4, 5]

# Remove specific element using negative index
removed_element = my_list.pop(-1) 
print(removed_element)  
# Create  a list
my_list = [1, 2, 3, 4, 5]

# Remove specific element using negative index
removed_element = my_list.pop(4) 
print(removed_element) 

Usando pop() para remover itens de uma lista enquanto itera

Você pode usar pop() em um loop para iterar pela lista e remover o último item a cada vez até a lista ficar vazia. O exemplo abaixo mostra como usar pop() em loops. O código vai imprimir List is now empty.

# Create a list
my_list = [1, 2, 3, 4, 5]

# Create a function to remove items from the list
while my_list:
    element = my_list.pop()
    print(f"Removed element: {element}")
print("List is now empty:", my_list)

Essa técnica pode ser útil em vários cenários. Imagine, por exemplo, que você tem uma lista de tarefas para resolver uma a uma. Usando pop(), você remove cada tarefa conforme for concluída, mantendo sua lista focada no que ainda falta.

Usando pop() com listas aninhadas

Você pode usar pop() para remover elementos de listas aninhadas. Esse método vai remover e retornar a lista especificada dentro da lista aninhada. O código a seguir imprime [7, 8, 9].

# Define a nested list
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

# Pop an element from the outer list
removed_list = nested_list.pop()
print(removed_list)

Se quiser remover um elemento específico da lista interna, primeiro indique o índice da lista na estrutura aninhada. O código abaixo imprime 9, que é o último elemento da lista no índice 2.

# Define a nested list
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

# Pop an element from an inner list
removed_element = nested_list[2].pop()
print(removed_element)

Tratando pop() com índice fora do intervalo

Quando você tenta remover um elemento de uma lista com um índice fora do intervalo daquela lista, um IndexError é lançado. Para evitar esse erro, é importante primeiro verificar o tamanho da lista e depois informar um índice válido. Você também pode usar um bloco try-except para capturar o erro. O código abaixo imprime Index out of range nos dois casos.

# Create a list
my_list = [1, 2, 3]

# Check length before popping
index = 4

# Ensure the index is within the valid range of the list
if 0 <= index < len(my_list):
    # Removes and returns the element at the specified index
    element = my_list.pop(index)  
    print(f"Popped element: {element}")
else:
    print("Index out of range")
# Create a list
my_list = [1, 2, 3]

# Using try-except block to handle out-of-range index
try:
    # Attempt to remove and return the element at index 5
    element = my_list.pop(5)
except IndexError:
    # Catches the IndexError if the index is out of range
    print("Index out of range")

Usando pop() com dicionários

O método pop() é usado com dicionários para remover uma chave especificada e retornar seu valor. A sintaxe do pop() com dicionários é mostrada abaixo.

dict.pop(key[, default])

Percebemos que pop(), quando usado com dicionário, requer uma chave como parâmetro. O método retorna o valor associado à chave especificada e remove o par chave-valor do dicionário.

Você também pode informar um valor padrão opcional para retornar se a chave não for encontrada. Se a chave especificada não existir e nenhum valor padrão for fornecido, um KeyError é lançado. Se um valor padrão for informado, ele é retornado no lugar.

Valor padrão em dicionários Python

Ao usar pop() com dicionários, você pode fornecer um valor padrão para retornar caso a chave não seja encontrada. Isso geralmente é usado para evitar o KeyError. O código abaixo imprime Not Found porque a chave d não está na coleção.

# Create a dictionary
my_dict = {'a': 1, 'b': 2, 'c': 3}

# Remove a specific key and provide default value
value = my_dict.pop('d', 'Not Found')

# Prints the returned value
print(value)

Usando pop() com dicionários aninhados

Assim como em listas, você pode usar pop() para remover elementos em dicionários aninhados. Dicionários aninhados são dicionários dentro de dicionários. O código a seguir imprime {'x': 7, 'y': 8, 'z': 9}.

# Define a nested dictionary
nested_dict = {
    'a': {'x': 1, 'y': 2, 'z': 3},
    'b': {'x': 4, 'y': 5, 'z': 6},
    'c': {'x': 7, 'y': 8, 'z': 9}
}

# Pop a key-value pair from the outer dictionary
removed_dict = nested_dict.pop('c')
print(removed_dict)

Você também pode remover um valor interno de um dicionário específico dentro da estrutura aninhada informando sua chave. O código abaixo imprime 2.

# Define a nested dictionary
nested_dict = {
    'a': {'x': 1, 'y': 2, 'z': 3},
    'b': {'x': 4, 'y': 5, 'z': 6},
    'c': {'x': 7, 'y': 8, 'z': 9}
}

# Pop a key-value pair from an inner dictionary
popped_inner_value = nested_dict['a'].pop('y')
print(popped_inner_value)

Tratando KeyError em dicionários Python

Outra forma comum de tratar o KeyError de maneira mais elegante é usar um bloco try-except para capturar o erro. O exemplo a seguir mostra como usar a técnica try-except com o método pop().

# Create a dictionary
my_dict = {'a': 1, 'b': 2, 'c': 3}

# Create the try-except block to catch the error
try:
    value = my_dict.pop('d')
except KeyError:
    print("Key not found")

Você também pode usar a palavra-chave in para verificar se uma chave específica existe em um dicionário antes de removê-la. O código abaixo usa esse método e retorna Key not found.

# Create a dictionary
my_dict = {'a': 1, 'b': 2}

# Check key existence before popping
key = 'c'
if key in my_dict:
    value = my_dict.pop(key)
    print(f"Popped value: {value}")
else:
    print("Key not found.")

Considerações de performance

Nesta seção, vamos analisar as implicações de performance ao usar pop() com listas e dicionários.

Operações em listas

A complexidade de tempo das operações pop() em listas depende do índice do elemento removido. Quando você usa pop() sem argumento ou com -1 para remover o último elemento, a operação é O(1) porque apenas remove o último elemento da lista, sem alterar os demais.

Quando usamos pop() para remover o primeiro ou qualquer outro elemento, a operação é O(n) porque envolve a remoção de um elemento e o deslocamento dos demais para novos índices. Confira nosso tutorial Analyzing Complexity of Code through Python para saber mais sobre complexidade de tempo em Python.

Operações em dicionários

O método pop() em dicionários é altamente eficiente devido à implementação da tabela hash subjacente. Nesse cenário, pop() em dicionários é geralmente uma operação O(1).

Essa complexidade ocorre porque o dicionário armazena as chaves em uma tabela hash e requer algum tempo para inserções, exclusões e buscas. Também vale lembrar que você sempre deve especificar a chave a ser removida de um dicionário ao usar pop(). Veja nosso tutorial A Guide to Python Hashmaps para aprender mais sobre tabelas hash.

Alternativas ao método pop() do Python

Embora pop() seja eficaz para remover elementos de listas e dicionários, existem algumas alternativas.

Usando a palavra-chave del

A palavra-chave del é usada para remover um item de uma lista informando o índice do elemento. Ela também pode remover pares chave-valor específicos de dicionários.  Vale notar que del não retorna o elemento removido, ao contrário de pop().

Os exemplos abaixo mostram como usar del para remover elementos de uma lista e de um dicionário. Após remover o elemento no índice 2, o código imprime a nova lista [1, 2, 4, 5].

# Initialize a list with integers from 1 to 5
my_list = [1, 2, 3, 4, 5]

# Remove item at index 2
del my_list[2]
print(my_list)

O código a seguir imprime {'a': 1, 'c': 3}.

# Create a dictionary
my_dict = {'a': 1, 'b': 2, 'c': 3}

# Remove the key 'b' and its associated value from the dictionary
del my_dict['b']
print(my_dict)

Usando o método remove()

O método remove() se aplica apenas a listas quando você quer remover um elemento pelo valor exato, e não pelo índice. Esse método remove a primeira ocorrência do elemento especificado se ele aparecer mais de uma vez na lista. O código abaixo imprime [1, 3, 4, 5].

# Initialize a list with integers from 1 to 5
my_list = [1, 2, 3, 4, 5]

# Remove the element with the value 2 from the list
my_list.remove(2)
print(my_list)

Conclusão

O método pop() é um recurso particularmente simples e versátil no Python para remover elementos de listas e dicionários, com várias aplicações práticas na programação. Ele é especialmente importante ao lidar com listas e dicionários porque retorna o elemento removido, que muitas vezes é exatamente o comportamento desejado.

Como analista de dados, recomendo conferir as trilhas de habilidades Python Fundamentals e Python Programming da DataCamp para melhorar suas habilidades em Python para análise de dados. Também indico nossa trilha de carreira Data Analyst with Python para você continuar desenvolvendo competências práticas e alinhadas ao mercado.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Eu crio artigos que simplificam a ciência e a análise de dados, tornando-as fáceis de entender e acessíveis.

Perguntas frequentes

O que o método pop() faz?

O método pop() remove e retorna um elemento de listas ou dicionários.

O que é IndexError no método pop()?

Um IndexError ocorre quando você tenta remover um elemento com um índice fora do intervalo.

Quais são as alternativas ao método pop()?

Os métodos alternativos para remover elementos de listas ou dicionários são o remove() e a palavra-chave del.

Qual é a diferença entre os métodos pop() e remove()?

O pop() remove e retorna o elemento especificado pelo índice em uma lista ou dicionário. Já remove() tira um elemento de uma lista pelo seu valor e não retorna esse valor.

Qual é a complexidade de tempo do método pop()?

A complexidade de tempo padrão de pop() é O(1), constante e eficiente.

O método pop() pode ser aplicado a outras estruturas de dados além de listas e dicionários no Python?

Sim, o método pop() também pode ser aplicado a sets e bytearrays em Python. Em sets, set.pop() remove e retorna um elemento arbitrário, já que conjuntos não têm ordem. Em bytearrays, bytearray.pop(index) remove e retorna o elemento no índice especificado, de forma semelhante ao funcionamento em listas.

Tópicos

Aprenda Python com a DataCamp

Programa

Programação Python

19 h
Aumente o nível de suas habilidades de programação. Você aprenderá a otimizar o código, escrever funções e testes e usar as melhores práticas de engenharia de software.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

Tutorial

Como tirar um item de uma lista no Python

Entenda como tirar itens de uma lista no Python. Familiarize-se com métodos como remove(), pop() e del para gerenciamento de listas.
Allan Ouko's photo

Allan Ouko

Tutorial

Método index() da lista Python explicado com exemplos

Aprenda a usar a função index() do Python pra achar a posição dos elementos nas listas.
Sejal Jaiswal's photo

Sejal Jaiswal

Tutorial

Tutorial e exemplos de funções e métodos de listas Python

Aprenda sobre as funções e métodos da lista Python. Siga agora os exemplos de código para list() e outras funções e métodos Python!
Abid Ali Awan's photo

Abid Ali Awan

Tutorial

Tutorial dos métodos .append() e .extend() do Python

Aprenda a usar os métodos .append() e .extend() para adicionar elementos a uma lista.
DataCamp Team's photo

DataCamp Team

Tutorial

Tutorial de compreensão de dicionário Python

Saiba tudo sobre a compreensão de dicionário do Python: como você pode usá-la para criar dicionários, substituir loops for (aninhados) ou funções lambda por map(), filter() e reduce(), ...!
Sejal Jaiswal's photo

Sejal Jaiswal

Tutorial

Como dividir listas em Python: Exemplos básicos e métodos avançados

Aprenda a dividir listas Python com técnicas como slicing, compreensão de listas e itertools. Descubra quando usar cada método para um tratamento ideal dos dados.
Allan Ouko's photo

Allan Ouko

Ver maisVer mais