Python List append() Method

The append() method adds one item to the end of a Python list.

Use it when you want to grow a list step by step. This method changes the original list directly, so it does not create a new list.

Quick answer

numbers = [1, 2, 3]
numbers.append(4)
print(numbers)
# [1, 2, 3, 4]

Use append() to add one item to the end of a list. It changes the original list.

What append() does

  • append() adds one item to the end of a list
  • It changes the existing list in place
  • It does not create a new list
  • It can add any Python object as one item

This means you can append:

  • numbers
  • strings
  • booleans
  • lists
  • dictionaries
  • custom objects

If you need a broader introduction to lists first, see Python lists explained for beginners.

Syntax

Basic form:

my_list.append(item)
  • my_list is the list you want to change
  • item is the value or object to add
  • The method returns None

Example:

fruits = ["apple", "banana"]
result = fruits.append("orange")

print(fruits)
print(result)

Output:

['apple', 'banana', 'orange']
None

The important detail is that append() updates fruits, but the method itself returns None.

Simple example

Start with a short list, append one value, then print the list.

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

print(colors)

Output:

['red', 'blue', 'green']

The new item becomes the last item in the list.

If you want a task-focused guide, see how to add an item to a list in Python.

Appending different data types

You can append many kinds of values.

items = []

items.append(10)
items.append("hello")
items.append(True)
items.append({"name": "Sam"})
items.append([1, 2, 3])

print(items)

Output:

[10, 'hello', True, {'name': 'Sam'}, [1, 2, 3]]

A list added with append() becomes one single item.

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

print(numbers)

Output:

[1, 2, [3, 4]]

Notice that [3, 4] was added as one nested list item.

This is different from list.extend(), which adds items one by one from another iterable.

append() vs extend()

This is one of the most common beginner questions.

Using append()

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

print(numbers)

Output:

[1, 2, [3, 4]]

Using extend()

numbers = [1, 2]
numbers.extend([3, 4])

print(numbers)

Output:

[1, 2, 3, 4]

The difference:

  • append([3, 4]) adds one item: the whole list
  • extend([3, 4]) adds two separate items
  • Use append() for one item
  • Use extend() for multiple items from another iterable

For the full method reference, see Python list extend() method.

Common beginner mistakes

Assigning the result of append()

This is a very common mistake:

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

print(items)

Output:

None

Why this happens:

  • append() changes the list in place
  • append() returns None
  • So items = items.append(4) replaces your list with None

Correct version:

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

print(items)

Output:

[1, 2, 3, 4]

Expecting append() to return the updated list

Wrong idea:

updated = [1, 2].append(3)
print(updated)

Output:

None

Remember: append() updates the list you already have.

Using append() when extend() is needed

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

print(numbers)

Output:

[1, 2, [3, 4]]

If you expected [1, 2, 3, 4], use extend() instead.

Forgetting that append() always adds at the end

append() cannot choose a position. It always adds the new item at the end of the list.

If you need to add an item at a specific index, use list.insert().

Example:

letters = ["a", "c"]
letters.insert(1, "b")

print(letters)

Output:

['a', 'b', 'c']

When to use append()

append() is useful when you are adding items one at a time.

Common cases:

  • building a list in a loop
  • collecting user input
  • storing results step by step
  • adding one new item to existing data

Example with a loop:

squares = []

for number in range(1, 5):
    squares.append(number * number)

print(squares)

Output:

[1, 4, 9, 16]

FAQ

Does append() return a new list?

No. append() changes the original list and returns None.

Can append() add multiple items at once?

No. It adds one item. To add multiple items from another iterable, use extend().

What happens if I append a list?

The whole list is added as one item at the end, creating a nested list.

Example:

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

print(data)

Output:

[1, 2, [3, 4]]

What is the difference between append() and insert()?

append() adds at the end. insert() adds at a specific position.

See also