How to Create a List in Python

What you’ll build or solve

You’ll create a list, empty or pre-filled, add items, read items by index, update or remove items, and loop through the list.

When this approach works best

This approach works best when you need:

  • An ordered collection, like a set of steps in a workflow or names to display in order.
  • A container you can change as your program runs, like adding new items or removing completed ones.
  • A simple way to loop over many values, like calculating totals from a series of numbers.

Avoid this approach when:

  • You need fast membership checks and no duplicates. Use a set.
  • You need key-value lookup. Use a dict.

Prerequisites

  • Python 3 installed
  • You know how to:
    • Assign a variable: x = 1
    • Print a value: print(x)
    • Run a few lines of Python in a file or an interactive shell

Step-by-step instructions

1) Create a list

Option A: start with values

colors = ["blue", "green", "red"]
numbers = [10, 20, 30]

print(colors)
print(numbers)

Option B: start empty

colors = []
print(colors)  # []

2) Add items to a list

Add one item with append():

colors = ["blue", "green"]
colors.append("red")

print(colors)  # ['blue', 'green', 'red']

Add several items with extend():

colors = ["blue"]
colors.extend(["green", "red"])

print(colors)  # ['blue', 'green', 'red']

What to look for:

append() adds one element. extend() adds each element from another iterable.


3) Read items by index

Indexes start at 0. Negative indexes count from the end.

colors = ["blue", "green", "red"]

print(colors[0])  # blue
print(colors[1])  # green
print(colors[-1])  # red

If you are not sure an index exists, check the length:

i = 3

if i < len(colors):
    print(colors[i])
else:
    print("index out of range")

4) Update items

Update an item by index:

colors = ["blue", "green", "red"]
colors[1] = "yellow"

print(colors)  # ['blue', 'yellow', 'red']

Insert an item at a specific position:

colors.insert(1, "purple")
print(colors)  # ['blue', 'purple', 'yellow', 'red']

5) Remove items

Remove by value with remove():

colors = ["blue", "green", "red"]
colors.remove("green")

print(colors)  # ['blue', 'red']

Remove by index with pop():

colors = ["blue", "green", "red"]
last = colors.pop()

print(last)  # red
print(colors)  # ['blue', 'green']

Remove a specific position with pop(index):

colors = ["blue", "green", "red"]
middle = colors.pop(1)

print(middle)  # green
print(colors)  # ['blue', 'red']

What to look for:

remove() fails if the value is missing.

pop() fails if the index is out of range.


6) Loop through items

Loop over values:

colors = ["blue", "green", "red"]

for color in colors:
    print(color)

Loop with index and value:

for i, color in enumerate(colors):
    print(i, color)

Examples you can copy

1) Build a list by adding items

shopping = []

shopping.append("milk")
shopping.append("bread")
shopping.append("eggs")

print(shopping)

2) Convert a string into a list of words

sentence = "Python lists are useful"
words = sentence.split()

print(words)  # ['Python', 'lists', 'are', 'useful']

3) Update and remove items from a to-do list

todo = ["email Sam", "pay rent", "book dentist"]

todo[0] = "email Alex"  # update
todo.remove("pay rent")  # remove by value
done = todo.pop()  # remove last item

print("done:", done)
print("left:", todo)

Common mistakes and how to fix them

Mistake 1: Creating a tuple by accident

You might write:

items = (1, 2, 3)
print(type(items))

Why it breaks:

Parentheses create a tuple, not a list, so you can’t change it the same way.

Correct approach:

items = [1, 2, 3]
items.append(4)

print(items)  # [1, 2, 3, 4]

Mistake 2: Using an index that does not exist

You might write:

colors = ["blue", "green", "red"]
print(colors[3])

Why it breaks:

Valid indexes are 0 to len(colors) - 1.

Correct approach:

print(colors[-1])  # last item

i = 3
if i < len(colors):
    print(colors[i])

Mistake 3: Calling remove() on a value that is not in the list

You might write:

colors = ["blue", "green", "red"]
colors.remove("yellow")

Why it breaks:

remove() raises an error when the value is missing.

Correct approach:

colors = ["blue", "green", "red"]

if "yellow" in colors:
    colors.remove("yellow")

Troubleshooting

If you see IndexError: list index out of range, print len(your_list) and confirm your index is less than the length. Use -1 for the last item.

If you see ValueError: list.remove(x): x not in list, check with if x in your_list: before calling remove().

If you see AttributeError: 'list' object has no attribute 'add', use append() to add one item or extend() to add many.

If you see a tuple type when you expected a list, check for parentheses () instead of brackets [].

If your “list of numbers” prints like ['1', '2'], you have strings. Convert them with int() when you create the list.


Quick recap

  • Create a list with [] or with values like ["a", "b"].
  • Add one item with append(), add many with extend().
  • Read items with list[index], and use 1 for the last item.
  • Update with list[index] = value, insert with insert().
  • Remove by value with remove(), or by index with pop().
  • Loop with for item in list or enumerate(list) when you need indexes.