Because "append" existed long before "pop" was thought of. Python 0.9.1 supported list.append in early 1991. By comparison, here's part of a discussion on comp.lang.python about adding pop in 1997. Guido wrote:

To implement a stack, one would need to add a list.pop() primitive (and no, I'm not against this particular one on the basis of any principle). list.push() could be added for symmetry with list.pop() but I'm not a big fan of multiple names for the same operation -- sooner or later you're going to read code that uses the other one, so you need to learn both, which is more cognitive load.

You can also see he discusses the idea of if push/pop/put/pull should be at element [0] or after element [-1] where he posts a reference to Icon's list:

I stil think that all this is best left out of the list object implementation -- if you need a stack, or a queue, with particular semantics, write a little class that uses a lists

In other words, for stacks implemented directly as Python lists, which already supports fast append(), and del list[-1], it makes sense that list.pop() work by default on the last element. Even if other languages do it differently.

Implicit here is that most people need to append to a list, but many fewer have occasion to treat lists as stacks, which is why list.append came in so much earlier.

Answer from Andrew Dalke on Stack Overflow
๐ŸŒ
W3Schools
w3schools.com โ€บ python โ€บ python_dsa_stacks.asp
Stacks with Python
Push: Adds a new element on the stack. Pop: Removes and returns the top element from the stack.
Top answer
1 of 12
290

Because "append" existed long before "pop" was thought of. Python 0.9.1 supported list.append in early 1991. By comparison, here's part of a discussion on comp.lang.python about adding pop in 1997. Guido wrote:

To implement a stack, one would need to add a list.pop() primitive (and no, I'm not against this particular one on the basis of any principle). list.push() could be added for symmetry with list.pop() but I'm not a big fan of multiple names for the same operation -- sooner or later you're going to read code that uses the other one, so you need to learn both, which is more cognitive load.

You can also see he discusses the idea of if push/pop/put/pull should be at element [0] or after element [-1] where he posts a reference to Icon's list:

I stil think that all this is best left out of the list object implementation -- if you need a stack, or a queue, with particular semantics, write a little class that uses a lists

In other words, for stacks implemented directly as Python lists, which already supports fast append(), and del list[-1], it makes sense that list.pop() work by default on the last element. Even if other languages do it differently.

Implicit here is that most people need to append to a list, but many fewer have occasion to treat lists as stacks, which is why list.append came in so much earlier.

2 of 12
13

Because it appends; it doesn't push. "Appending" adds to the end of a list, "pushing" adds to the front.

Think of a queue vs. a stack.

http://docs.python.org/tutorial/datastructures.html

Edit: To reword my second sentence more exactly, "Appending" very clearly implies adding something to the end of a list, regardless of the underlying implementation. Where a new element gets added when it's "pushed" is less clear. Pushing onto a stack is putting something on "top," but where it actually goes in the underlying data structure completely depends on implementation. On the other hand, pushing onto a queue implies adding it to the end.

Discussions

Just a quick question about .pop() in python
Pop removes the last item from a list if the method is just called to a list: Var = [0, 1, 2, 3] Var.pop() Var is now = [0, 1, 2] You can also use pop to assign a variable to the last item in a list while simultaneously removing it from that list. E.g.: Var = [0, 1, 2, 3] newVar = Var.pop() newVar is then assigned to 3 and 3 is removed from Var. More on reddit.com
๐ŸŒ r/learnprogramming
7
1
January 24, 2020
how to use the Stack()?
There's no type called Stack in the Python standard library. The list type supports all the operations of a stack and thus can be used as one, which is the easiest option: stack = [] stack.append(1) # Push stack[-1] # Peek stack.pop() # Pop There's also collections.deque if performance is a concern. "Deque" stands for "double-ended queue" and is an efficient data structure that can be used as either a stack or a queue. Documentation: https://docs.python.org/3/library/collections.html#collections.deque More on reddit.com
๐ŸŒ r/learnpython
4
3
October 26, 2022
What is the most efficient way to push and pop a list in Python? - Stack Overflow
In Python how do I write code which shifts off the last element of a list and adds a new one to the beginning - to run as fast as possible at execution? There are good solutions involving the use of More on stackoverflow.com
๐ŸŒ stackoverflow.com
Dis.py: STACK.append vs STACK.push
I need to practice my backport cherry picking (and corresponding pull requesting). I have a simple case in mind. Stack operation activity described in the file library/dis.rst mentions both STACK.append and STACK.push asโ€ฆ More on discuss.python.org
๐ŸŒ discuss.python.org
1
February 8, 2024
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ python โ€บ stack-in-python
Stack in Python - GeeksforGeeks
DSA Python ยท Data Science ยท NumPy ... principle. The last inserted element is removed first ยท Insertion operation is called push ยท Deletion operation is called pop ยท...
Published ย  May 19, 2026
๐ŸŒ
W3Schools
w3schools.com โ€บ python โ€บ ref_list_pop.asp
Python List pop() Method
Python Examples Python Compiler ... Interview Q&A Python Bootcamp Python Training ... The pop() method removes the element at the specified position....
๐ŸŒ
CodeSignal
codesignal.com โ€บ learn โ€บ courses โ€บ advanced-built-in-data-structures-and-their-usage โ€บ lessons โ€บ exploring-stacks-with-python-lists
Exploring Stacks with Python Lists
For the Push operation, we use append(), which adds an element at the list's end. For the Pop operation, there's the pop() function that removes the last element, simulating the removal of the 'top' element in a stack.
Find elsewhere
๐ŸŒ
Python documentation
docs.python.org โ€บ 3 โ€บ tutorial โ€บ datastructures.html
5. Data Structures โ€” Python 3.14.6 documentation
The list methods make it very easy ... add an item to the top of the stack, use append(). To retrieve an item from the top of the stack, use pop() without an explicit index....
๐ŸŒ
Programiz
programiz.com โ€บ dsa โ€บ stack
Stack Data Structure and Implementation in Python, Java and C/C++
In programming terms, putting an item on top of the stack is called push and removing an item is called pop. ... In the above image, although item 3 was kept last, it was removed first. This is exactly how the LIFO (Last In First Out) Principle works. We can implement a stack in any programming ...
๐ŸŒ
w3resource
w3resource.com โ€บ python-exercises โ€บ oop โ€บ python-oop-exercise-9.php
Python OOP: Stack class with push, pop, and display methods
July 9, 2025 - # Define a class called Stack to implement a stack data structure class Stack: # Initialize the stack with an empty list to store items def __init__(self): self.items = [] # Push an item onto the stack def push(self, item): self.items.append(item) # Pop (remove and return) an item from the stack if the stack is not empty def pop(self): if not self.is_empty(): return self.items.pop() else: raise IndexError("Cannot pop from an empty stack.") # Check if the stack is empty def is_empty(self): return len(self.items) == 0 # Display the items in the stack def display(self): print("Stack items:", self
๐ŸŒ
Mimo
mimo.org โ€บ glossary โ€บ python โ€บ pop()
Python Pop Method: Essential Data Manipulation techniques
The .pop() method removes an item from a list and returns it. Its behavior depends on whether you provide an index: ... Become a Python developer.
๐ŸŒ
Analytics Vidhya
analyticsvidhya.com โ€บ home โ€บ implementing python stack: functions, methods, examples & more
Implementing Python Stack: Functions, Methods, Examples & More - Analytics Vidhya
June 10, 2025 - Letโ€™s explore Python stack methods: push(item): This method adds an element (item) to the top of the stack. ... pop(): The pop() method is employed to remove and retrieve the top element from the push and pop in python.
๐ŸŒ
Programiz
programiz.com โ€บ python-programming โ€บ methods โ€บ list โ€บ pop
Python List pop()
If you need to pop the 4th element, you need to pass 3 to the pop() method. # programming languages list languages = ['Python', 'Java', 'C++', 'Ruby', 'C'] # remove and return the last item print('When index is not passed:')
๐ŸŒ
Python.org
discuss.python.org โ€บ documentation
Dis.py: STACK.append vs STACK.push
February 8, 2024 - I need to practice my backport cherry picking (and corresponding pull requesting). I have a simple case in mind. Stack operation activity described in the file library/dis.rst mentions both STACK.append and STACK.push as the inverse of STACK.pop. Iโ€™m old-fashioned and prefer push to append, but if the concensus is to use append, Iโ€™ll change push to append.
๐ŸŒ
Great Learning
mygreatlearning.com โ€บ blog โ€บ it/software development โ€บ stack in python: how to implement python stack?
Stack in Python: How To Implement Python Stack?
October 24, 2024 - The most basic methods associated ... The element to be pushed is passed in its argument. pop()โ€“ We need this method to remove the topmost element from the stack....
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ python โ€บ python-list-pop-method
Python List pop() Method - GeeksforGeeks
1 week ago - Explanation: a.pop() removes and returns the last element of the list and removed value is stored in val.
๐ŸŒ
Built In
builtin.com โ€บ articles โ€บ stack-in-python
A Complete Guide to Stacks in Python | Built In
April 9, 2025 - Python does not have a built-in stack() function, but stacks can be implemented using lists, collections.deque, or queue.LifoQueue. These implementations provide the necessary stack functionalities such as push, pop and peek.