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

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
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
string - stack, push and pop in python - Stack Overflow
The question is to write a function that creates a stack, pushes the letters in the given parameter string onto the stack and pops them off as indicated by the '*'s in the parameter string. A lette... More on stackoverflow.com
๐ŸŒ stackoverflow.com
Write push(rollno) and pop() method in Python: push(rollno) โ€” to add roll number in Stack pop() โ€” to remove roll number from Stack
Write push(rollno) and pop() method in Python: push(rollno) โ€” to add roll number in Stack pop() โ€” to remove roll number from Stack More on knowledgeboat.com
๐ŸŒ knowledgeboat.com
1
3
May 2, 2024
๐ŸŒ
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.
๐ŸŒ
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....
๐ŸŒ
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
๐ŸŒ
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....
๐ŸŒ
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
Find elsewhere
๐ŸŒ
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.
๐ŸŒ
w3resource
w3resource.com โ€บ python-exercises โ€บ oop โ€บ python-oop-exercise-6.php
Python OOP: Stack class with push and pop methods
July 9, 2025 - It has an attribute called items, which is initially an empty list. The "push()" method takes an item as an argument and appends it to the items list, effectively adding it to the top of the stack.
๐ŸŒ
Codecademy
codecademy.com โ€บ article โ€บ create-a-stack-in-python
Stack in Python: How to Build a Python Stack Data Structure | Codecademy
There are two operations that are fundamental to this data structure: A .push() function that adds an item to the stack. A .pop() function that removes the most recently added item to the stack.
๐ŸŒ
Educative
educative.io โ€บ answers โ€บ how-to-implement-stack-in-python
How to implement stack in Python
In Python, a stack is implemented using a list object. To push an item in the stack, use the list function append list.append(item) To pop an item in the stack, use the list function pop list.pop()
๐ŸŒ
Runestone Academy
runestone.academy โ€บ ns โ€บ books โ€บ published โ€บ pythonds โ€บ BasicDS โ€บ ImplementingaStackinPython.html
4.5. Implementing a Stack in Python โ€” Problem Solving with Algorithms and Data Structures
The performance of the second implementation suffers in that the insert(0) and pop(0) operations will both require O(n) for a stack of size n. Clearly, even though the implementations are logically equivalent, they would have very different timings when performing benchmark testing. ... Q-4: Given the following sequence of stack operations, what is the top item on the stack when the sequence is complete? m = Stack() m.push('x') m.push('y') m.pop() m.push('z') m.peek()
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ python โ€บ implementation-of-stack-in-python-using-list
Implementation of Stack in Python using List - GeeksforGeeks
July 23, 2025 - ... stack = [] stack.append(1) stack.append(2) stack.append(3) print("The Stack items are:") for i in stack: print(i) ... The pop Operation in stack use to remove the last element from the stack.
๐ŸŒ
Hyperskill
hyperskill.org โ€บ university โ€บ python โ€บ stack-in-python
Stack in Python
July 24, 2024 - Using a stack in Python is a way ... an abstract data type comprising elements, with two key operations; push, to add an element to the top of the stack and pop to remove the most recently added element....
๐ŸŒ
Real Python
realpython.com โ€บ how-to-implement-python-stack
How to Implement a Python Stack โ€“ Real Python
July 31, 2023 - Youโ€™ll look at the following ... can use .append() to add new elements to the top of your stack, while .pop() removes the elements in the LIFO order:...
๐ŸŒ
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:')