Script Valley
Python: Complete Language Course
Data StructuresLesson 2.1

Python lists — creation, indexing, and common methods

list creation, indexing, negative indexing, slicing, append, extend, remove, pop, len, list mutability

Python Lists

A list is an ordered, mutable sequence. It can hold items of mixed types, though keeping types consistent is good practice.

nums = [10, 20, 30, 40, 50]

print(nums[0])   # 10  — first element
print(nums[-1])  # 50  — last element
print(nums[1:4]) # [20, 30, 40]  — slice

Common Methods

fruits = ["apple", "banana"]

fruits.append("cherry")       # add to end
fruits.extend(["date", "fig"]) # merge another list
fruits.insert(1, "avocado")   # insert at index
fruits.remove("banana")       # remove by value
popped = fruits.pop()         # remove and return last

print(len(fruits))  # current length
print(fruits.index("apple"))  # 0
print(fruits.count("apple"))  # 1

Mutability

Lists are mutable — you can change elements in place. Assigning a list to another variable does not copy it; both names point to the same object. Use list.copy() or list[:] to create a shallow copy when you need independence.

a = [1, 2, 3]
b = a          # b is a reference, not a copy
b.append(4)
print(a)       # [1, 2, 3, 4] — a was modified too

c = a.copy()   # independent copy

Lists are one of the most frequently used data structures in Python. Slicing with [start:stop:step] is a powerful pattern — lst[::-1] reverses a list in one line. Sorting is done with list.sort() (in-place) or sorted(list) (returns a new list). When iterating a list while modifying it, iterate over a copy or use list comprehensions to build a new list — modifying a list in place during iteration causes skipped elements and is a frequent source of bugs.

Up next

Python tuples vs lists — when to use each

Sign in to track progress