Python’s Built-In Data Structures: Lists, Dictionaries, Tuples and Sets Explained

Python lists are one of the most versatile and widely used data structures in the language. They allow you to store and manipulate collections of items efficiently. In this blog post, we’ll dive deep into the details of Python lists, including their characteristics, methods, performance considerations, and best practices.

Introduction to Python Lists

A Python list is an ordered, mutable collection of elements enclosed in square brackets ([]). Lists can store elements of different data types, including integers, strings, and even other lists. For example:

my_list = [1, "apple", True, [2, 3]]

Key Characteristics of Python Lists

Python lists are:

  • Ordered: Elements maintain their insertion order.
  • Mutable: Elements can be added, removed, or modified after creation.
  • Heterogeneous: Lists can store elements of different types.
  • Dynamic: Lists automatically resize as elements are added or removed.

Creating Lists 

Using Square Brackets

list1 = []          # Empty list
list2 = [1, 2, 3]   # List with integers

Using the list() Constructor

list3 = list()            # Empty list
list4 = list("hello")     # ['h', 'e', 'l', 'l', 'o']
list5 = list(range(3))    # [0, 1, 2]

Accessing Elements

Indexing

Use positive indices (starting from 0) or negative indices (starting from -1 for the last element).

fruits = ["apple", "banana", "cherry"]
print(fruits[0])   # "apple"
print(fruits[-1])  # "cherry"

Slicing

Extract sublists using list[start:stop:step].

numbers = [0, 1, 2, 3, 4, 5]
print(numbers[1:4])    # [1, 2, 3]
print(numbers[::2])    # [0, 2, 4]
print(numbers[::-1])   # [5, 4, 3, 2, 1, 0] (reverse)

Modifying Lists

Adding Elements

Append: Add a single element to the end.
Insert: Add an element at a specific index.
Extend: Merge with another iterable.

Removing Elements

Remove: Delete the first occurrence of a value.
Pop: Remove an element by index (defaults to last element).
Clear: Empty the list.
Del: Use the del keyword to delete elements or slices.

Modifying Elements

Built-in List Methods

MethodDescriptionExample
sort()Sorts the list in-place.numbers.sort()
reverse()Reverses the list in-place.numbers.reverse()
count(x)Returns the number of occurrences of x.numbers.count(2)
index(x)Returns the index of the first occurrence of x.numbers.index(3)
copy()Returns a shallow copy of the list.new list = numbers.copy()