What is the difference between lists and tuples?

Lists and tuples are both used to store collections of items in Python, but they have key differences:

1. Mutability
  • List: Mutable (can be changed after creation—elements can be added, removed, or modified).
  • Tuple: Immutable (cannot be changed after creation—elements cannot be added, removed, or modified).
2. Syntax
  • List: Defined using square brackets [].
    my_list = [1, 2, 3]
    
  • Tuple: Defined using parentheses ().
    my_tuple = (1, 2, 3)
    
3. Performance
  • List: Slower (because of mutability, it has extra overhead).
  • Tuple: Faster (because it is immutable, making it more memory-efficient).
4. Use Cases
  • List: Used when data needs to be modified, sorted, or frequently changed.
  • Tuple: Used when data should remain constant and not be accidentally modified (e.g., representing fixed data like coordinates or database records).
5. Memory Usage
  • List: Takes more memory due to dynamic nature.
  • Tuple: Takes less memory, making it more efficient in some cases.
6. Methods Available
  • List: Has more built-in methods like append(), remove(), sort(), etc.
  • Tuple: Has fewer methods, mostly for accessing elements like count() and index().
Example :
# List Example (Mutable)
my_list = [1, 2, 3]
my_list.append(4)  # Allowed
print(my_list)  # Output: [1, 2, 3, 4]

# Tuple Example (Immutable)
my_tuple = (1, 2, 3)
# my_tuple.append(4)  # This will cause an error!
print(my_tuple)  # Output: (1, 2, 3)
When to Use What?
  • Use a list when you need to modify data.
  • Use a tuple when you want to ensure data remains unchanged and for better performance.