Are Python Lists Filo Or Fifo

Python Programming

When it comes to Python lists, there’s often a bit of confusion about whether they follow the FILO (First In, Last Out) or FIFO (First In, First Out) principle. As a Python enthusiast, I’ve delved into this topic to gain a deeper understanding, and I’m excited to share my findings with you.

Understanding FILO and FIFO

FILO and FIFO are principles used to describe the order in which elements are accessed in a data structure. FILO, also known as Last In, First Out (LIFO), means that the last element added to the structure is the first to be removed. On the other hand, FIFO, or First In, First Out, follows the principle of the first element added being the first to be removed.

Python Lists and their Behavior

In Python, lists are a versatile and commonly used data structure. They are ordered, mutable, and allow for duplicate elements. When it comes to the behavior of Python lists, they adhere to the FIFO principle. This means that the element at the beginning of the list is accessed and removed first, followed by the next element in the sequence.

It’s important to note that this behavior is consistent with the concept of arrays, which are the underlying data structure for Python lists. This is why elements are accessed in the order in which they were added, aligning with the FIFO principle.

Exploring Practical Examples

Let’s delve into a practical example to illustrate the FIFO behavior of Python lists. Suppose we have a list called my_list with the elements [1, 2, 3]. When we use the pop(0) method to remove an element, the first element, which is 1, will be removed, and the list will be updated to [2, 3]. This demonstrates how the first element added, 1, is the first to be removed.


In conclusion, Python lists adhere to the FIFO (First In, First Out) principle, meaning that the first element added to the list will be the first to be accessed and removed. Understanding the behavior of Python lists is crucial for effective programming and data manipulation. Embracing this aspect of Python’s data structures empowers developers to write efficient and reliable code.