Basic List Operations: Adding Elements
From the PYTHON curriculum
TL;DR
Python lists are incredibly versatile for storing collections of items. You can easily add new items to the end of a list using append() or insert them at a specific position using insert(). For adding multiple items from another iterable, extend() is your best friend.
1. The Mental Model
Think of a Python list like a shopping list you can constantly update. You can add new things to the bottom of the list, put an item in the middle if you forgot it, or even combine it with another small list.
2. The Core Material
Lists in Python are ordered, changeable collections that allow duplicate members. Adding elements is a common operation.
2.1 Appending an Item (.append())

Photo by Digital Buggu on Pexels
The append() method adds a single item to the very end of your list. It's straightforward and easy to use.
my_list = ["apple", "banana"]
my_list.append("cherry")
print(my_list)
# Output: ['apple', 'banana', 'cherry']
If you append another list, it will add that entire list as a single item at the end, not its individual elements.
my_list = ["a", "b"]
my_list.append(["c", "d"])
print(my_list)
# Output: ['a', 'b', ['c', 'd']]
2.2 Inserting an Item (.insert())

Photo by https://kaboompics.com/ on Pexels
The insert() method allows you to add an item at a specific position (index) in your list. It takes two arguments: the index where you want to insert, and the item itself. Items already at and after that index are shifted to the right.
my_list = ["red", "green", "blue"]
my_list.insert(1, "yellow") # Insert "yellow" at index 1
print(my_list)
# Output: ['red', 'yellow', 'green', 'blue']
If the index is out of bounds (too large), it behaves like append() and adds the item to the end. If the index is negative and beyond the start, it adds to the beginning.
2.3 Extending with Multiple Items (.extend())

Photo by DS stories on Pexels
The extend() method is used to add all the items of another iterable (like another list, tuple, or string) to the end of your current list. It effectively "unpacks" the iterable and adds its individual elements.
list1 = [1, 2, 3]
list2 = [4, 5]
list1.extend(list2)
print(list1)
# Output: [1, 2, 3, 4, 5]
list3 = ["cat", "dog"]
list3.extend("bird") # Extends with individual characters from "bird"
print(list3)
# Output: ['cat', 'dog', 'b', 'i', 'r', 'd']
Here's a quick look at when to use each method:
graph TD
A["Want to add elements to a list?"] --> B{Add a single item?};
B -->|Yes| C{To the very end?};
C -->|Yes| D["Use .append()"];
C -->|No| E{At a specific position?};
E -->|Yes| F["Use .insert(index, item)"];
B -->|No| G{Add multiple items from another collection?};
G -->|Yes| H["Use .extend(iterable)"];
2.4 Using + Operator for List Concatenation

Photo by Markus Spiske on Pexels
While not a method for adding to an existing list in-place, the + operator creates a new list by concatenating two or more lists.
list_a = [10, 20]
list_b = [30, 40]
new_combined_list = list_a + list_b
print(new_combined_list)
# Output: [10, 20, 30, 40]
print(list_a) # list_a is unchanged
# Output: [10, 20]
3. Worked Example
Let's imagine you're building a list of ingredients for a recipe.
Start with: ingredients = ["flour", "sugar"]
-
First, you remember you need "eggs". Add it to the end.
ingredients.append("eggs")
ingredientsis now["flour", "sugar", "eggs"] -
Then, you realize you forgot "butter" which should go right after "flour".
ingredients.insert(1, "butter")
ingredientsis now["flour", "butter", "sugar", "eggs"] -
Finally, you want to add a list of spices:
["cinnamon", "nutmeg"].
ingredients.extend(["cinnamon", "nutmeg"])
ingredientsis now["flour", "butter", "sugar", "eggs", "cinnamon", "nutmeg"]
4. Key Takeaways
append()adds a single item to the end of a list.insert()adds a single item at a specified index in a list.extend()adds all elements from an iterable (like another list) to the end of the current list.append()andextend()modify the list in-place (they don't return a new list).- The
+operator concatenates lists to create a new list, leaving the original lists unchanged. - Choose
append()for single items,extend()for multiple items from another collection, andinsert()for specific positioning.
5. Now Try It
Create an empty list called shopping_list. Add "milk" and "bread" using append(). Then, imagine you forgot "eggs" and want to add them between "milk" and "bread" using insert(). Finally, add all items from produce_items = ["apples", "bananas", "carrots"] to your shopping_list using extend(). Print the shopping_list at each step to see how it changes. What should the final list look like?
Frequently asked about Basic List Operations: Adding Elements
Study this next
Get the full PYTHON curriculum
Clone the complete plan to your dashboard for unlimited AI-generated notes, practice quizzes, and a personalised revision schedule.
Save this course free