Hey! If you love Python and building Python apps as much as I do, let's connect on Twitter or LinkedIn. I talk about this stuff all the time!

Is a List Mutable in Python?

Learn about the concept of list mutability in Python, its implications for your code, and how to work with mutable lists effectively. …


Updated May 2, 2023

Learn about the concept of list mutability in Python, its implications for your code, and how to work with mutable lists effectively.

Definition of the Concept

In programming, a mutable object is one that can be changed after it’s created. Conversely, an immutable object cannot be altered once it exists. Lists in Python are mutable, meaning their contents can be modified over time.

Think of a list as a shopping cart: initially empty, but capable of holding items (elements) like fruits or vegetables. As you add or remove elements from the cart, its contents change. This is similar to how lists work in Python – they start with an initial state and can grow or shrink dynamically.

Step-by-Step Explanation

Let’s explore list mutability through a series of steps:

  1. Creating a List: Start by creating an empty list using square brackets []. For example:

Create an empty list called ‘fruits’

fruits = []


2. **Adding Elements:** Use the `.append()` method to add elements (like fruits) to the list.
   ```python
# Add some fruits to the list
fruits.append('Apple')
fruits.append('Banana')
fruits.append('Cherry')

As you append new items, the list grows.

  1. Modifying Elements: To change an existing element’s value, use the index to access it and then modify its content.

Change the first fruit in the list to ‘Grape’

fruits[0] = ‘Grape’

   This shows that elements within a mutable list can be altered.

4. **Removing Elements:** Use the `.remove()` method or set an index directly to zero out an element.
   ```python
# Remove the last fruit from the list (or change it)
fruits.pop()  # Remove the last item, or equivalently: fruits[-1] = None

Both methods effectively shrink the list’s content.

Key Takeaways

  • A list in Python is mutable by nature.
  • Lists can be initialized empty and then populated dynamically using various methods like .append(), .insert() (though not shown here), and more.
  • List elements themselves are immutable objects. Therefore, their values cannot change; only the references to them within the list can vary.

Code Example: Working with Mutable Lists

Below is an example illustrating the basic operations you might perform on a mutable list:

# Define an empty list called 'numbers'
numbers = []

# Append some numbers to the list
numbers.append(1)
numbers.append(2)
numbers.append(3)

print("Initial List:", numbers)  # Output: [1, 2, 3]

# Change an existing element's value
numbers[0] = 10

print("List after changing first element:", numbers)  # Output: [10, 2, 3]

# Remove the last number from the list
numbers.pop()

print("List after removing last element:", numbers)  # Output: [10, 2]

Conclusion

This guide has explained what it means for a list to be mutable in Python. It covered how lists can grow or shrink dynamically and how their elements are immutable objects themselves, but the references to them within the list can change. This understanding is essential for working effectively with lists and other data structures in your Python programs.

Stay up to date on the latest in Python, AI, and Data Science

Intuit Mailchimp