Yes, it is O(1) to pop the last element of a Python list, and O(N) to pop an arbitrary element (since the whole rest of the list has to be shifted).

Here's a great article on how Python lists are stored and manipulated: An Introduction to Python Lists.

Answer from Dan Lenski on Stack Overflow
Discussions

Does pop(i) have a Time Complexity of O(n) or O(k)?
O(k) when k = n-1 is really the same as O(n) where time complexity is concerned. More on reddit.com
🌐 r/learnpython
3
3
July 1, 2020
I was surprised at how slow list.pop() is! And list.remove() is even many times slower
This is simply how lists work, nothing surprising here. Removing the first element requires moving all the elements after it one step to the left to fill that gap, which makes this operation run in linear time. It means that clearing the list this way is O(n2), so it unsurprisingly takes a long time, as bubble sorting the (shuffled) list could even be faster. This is why we think of alternatives when solving problems, such as using collections.deque, reversing the list (O(n) instead of O(n2)) or just using pop() from the end if it works. More on reddit.com
🌐 r/learnpython
38
57
August 22, 2021
Time Complexity for Dictionary Python
For dictionaries/HashTables the Average is O(1), worst case is still O(n) More on reddit.com
🌐 r/leetcode
5
5
September 29, 2022
Python dict vs set operations time complexities
from my understanding sets are sorted No, sets are inherently unordered data structures. Their iteration order in practice is essentially random (though persistently so throughout the lifetime of a Python process). More on reddit.com
🌐 r/learnpython
11
1
September 7, 2022
🌐
Medium
medium.com › @shuangzizuobh2 › how-well-do-you-code-python-9bec36bbc322
How slow is python list.pop(0) ?. An empirical study on python list.pop… | by Hj | Medium
September 27, 2023 - How slow is python list.pop(0) ? An empirical study on python list.pop complexity TL;DR Python list.pop(k) has a time complexity of O(n). Be cautious when use a python list as a Queue structure. Use …
🌐
Python
wiki.python.org › moin › TimeComplexity
TimeComplexity
n - k elements have to be moved, ... 1 moves. The average case for an average value of k is popping the element the middle of the list, which takes O(n/2) = O(n) operations....
🌐
DataCamp
datacamp.com › tutorial › python-pop
How to Use the Python pop() Method | DataCamp
July 31, 2024 - When we use the pop() method to remove the first or any other element, it works in O(n) time because it involves removing an element and shifting the other elements to a new index order. Check out our Analyzing Complexity of Code through Python tutorial to learn more about time complexity in Python.
🌐
Quora
quora.com › What-is-the-time-complexity-of-the-pop-function-in-a-Python-list
What is the time complexity of the pop() function in a Python list? - Quora
Answer: Depends upon whether you pop from the end (which is the default when you pass no argument), or pop a specific position (which you can do, by passing an index number). Pop from the end is O(1) of course, but popping a specific position ...
🌐
GeeksforGeeks
geeksforgeeks.org › python › python-remove-rear-element-from-list
Python - Remove rear element from list - GeeksforGeeks
April 6, 2023 - # Python 3 code to demonstrate ... list is : [1, 4, 3, 6, 7] Modified list is : [1, 4, 3, 6] Time complexity: O(1) for the pop() method and O(n) for the len() method, but as n is constant, the time complexity can be considered ...
Find elsewhere
🌐
Unstop
unstop.com › home › blog › python pop() function | list & dictionaries (+code examples)
Python pop() Function | List & Dictionaries (+Code Examples)
November 11, 2024 - Yes, there are performance implications when using pop() in Python, and they depend on the type of data structure you're working with: ... Python pop() operates in O(1) time complexity when used to remove the last element (i.e., when no index ...
🌐
Codecademy
codecademy.com › docs › python › lists › .pop()
Python | Lists | .pop() | Codecademy
May 26, 2025 - Learn the basics of Python 3.12, one of the most powerful, versatile, and in-demand programming languages today. ... index (optional): The position of the element to remove. Defaults to -1 (the last item) if not provided. ... The .pop() method returns the removed item from the specified index. If the index is out of range, it raises an IndexError. This example demonstrates how to use the .pop() method to remove the last element from a list:
🌐
Medium
thinklikeacto.medium.com › time-complexity-of-popping-elements-from-list-in-python-215ad3d9c048
Time complexity of popping elements from list in Python! | by Naresh Thakur | Medium
January 23, 2020 - Consider we have following list. ... By doing a.pop() with no arguments it will remove and return the last element which has O(1) time complexity. Because it just remove the last element and do not need to re-arrange the elements. Python list is implemented as an array of pointers.
🌐
Quora
quora.com › What-are-the-time-complexity-considerations-of-lists-in-Python
What are the time complexity considerations of lists in Python? - Quora
Answer: In a normal list on average: * Append : O(1) * Extend : O(k) - k is the length of the extension * Index : O(1) * Slice : O(k) * Sort : O(n log n) - n is the length of the list * Len : O(1) * Pop : O(1) - pop from end * Insert : O(n) ...
🌐
Runestone Academy
runestone.academy › ns › books › published › pythonds3 › AlgorithmAnalysis › Lists.html
2.6. Lists — Problem Solving with Algorithms and Data Structures 3rd edition
After thinking carefully about Table 2, you may be wondering about the two different times for pop. When pop is called on the end of the list it takes \(O(1)\), but when pop is called on the first element in the list—or anywhere in the middle it—is \(O(n)\) The reason for this lies in how Python chooses to implement lists.
🌐
Finxter
blog.finxter.com › python-set-pop
Python Set pop() – Be on the Right Side of Change
April 14, 2021 - s = {'Alice', 'Bob', 'Carl', 'Liz', ... of the set.pop() function on a set with n elements is O(1). So, Python’s set.pop() method has constant runtime complexity....
🌐
DEV Community
dev.to › iihsan › time-complexity-analysis-of-python-methods-bigo-notations-for-list-tuple-set-and-dictionary-methods-47l9
Time Complexity Analysis of Python Methods: Big(O) Notations for List, Tuple, Set, and Dictionary Methods - DEV Community
January 15, 2024 - For example, list.append(). As the list reserves some memory, so until it is utilized, list.append() gives O(1). However, when the reserved memory is filled, and new memory is required, a new list is created with more space, copying all elements. While this operation is not always constant time, it happens infrequently. So, we refer to it as Amortized constant time. The IN Operator uses linear search with a time complexity of O(n). Thanks for reading! Feel free to like, comment, and share if you find this article valuable. You can check my other articles as well: Mastering Metaclasses in Python using real-life scenarios Use Asynchronous Programming in Python: Don’t Block Entire Thread
🌐
Python Morsels
pythonmorsels.com › time-complexities
Python Big O: the time complexities of different data structures in Python - Python Morsels
April 16, 2024 - For inexpensive operations involving the least-recently added item (the beginning of a list), we'd need a queue-like structure. That's what Python's collections.deque data structure is for. >>> from collections import deque >>> queue = deque([2, 1, 3, 4]) Here are the time complexities of common deque operations: Note that we can efficiently add and remove items from the beginning of a deque with the appendleft and popleft methods.
🌐
Finxter
blog.finxter.com › what-is-the-difference-between-remove-pop-and-del-in-lists-in-python
What is The Difference Between remove(), pop() and del in Lists in Python? – Be on the Right Side of Change
November 1, 2021 - If you specify a value that is not present in the list, Python raises IndexError. li = [3, 5, 7, 2, 6, 4, 8] print(li.pop(8)) # IndexError: pop index out of range · Complexity Analysis: The computational complexity when removing an element in index i from the list of n elements using pop() method is O(n-i) Case 1:To delete the first element from a list of 10000 elements using pop(). Case 2: To delete an element at 4900th index(element 5000, refer to the time complexity example of remove()) from the list of 10000 elements using pop().
🌐
Python
docs.python.org › 3 › library › collections.html
collections — Container datatypes
Deques are a generalization of stacks and queues (the name is pronounced “deck” and is short for “double-ended queue”). Deques support thread-safe, memory efficient appends and pops from either side of the deque with approximately the same O(1) performance in either direction. Though list objects support similar operations, they are optimized for fast fixed-length operations and incur O(n) memory movement costs for pop(0) and insert(0, v) operations which change both the size and position of the underlying data representation.
🌐
Mimo
mimo.org › glossary › python › pop()
The Python List pop() Method: Syntax, Usage, and Examples
Without an argument, the default index is -1, pointing to the last element in the list. ## **When to Use pop() in Python Lists** ### Stack Data Structure A stack is a classic use case for `pop()` because it removes the last added element first (last in, first out).
🌐
GeeksforGeeks
geeksforgeeks.org › python › complexity-cheat-sheet-for-python-operations
Complexity Cheat Sheet for Python Operations - GeeksforGeeks
July 12, 2025 - This cheat sheet is designed to help developers understand the average and worst-case complexities of common operations for these data structures that help them write optimized and efficient code in Python. Python's list is an ordered, mutable sequence, often implemented as a dynamic array. Below are the time complexities for common list operations: