Tutorial

How to Add Elements to a List in Python – Append, Insert & Extend

Updated on April 17, 2025

Sr Technical Writer

How to Add Elements to a List in Python – Append, Insert & Extend

Introduction

In this tutorial, we will learn different ways to add elements to a list in Python.

There are four methods to add elements to a List in Python.

  1. append(): append the element to the end of the list.
  2. insert(): inserts the element before the given index.
  3. extend(): extends the list by appending elements from the iterable.
  4. List Concatenation: We can use the + operator to concatenate multiple lists and create a new list.

Deploy your Python applications from GitHub using DigitalOcean App Platform. Let DigitalOcean focus on scaling your app.

Prerequisites

In order to complete this tutorial, you will need:

This tutorial was tested with Python 3.9.6.

append()

This function adds a single element to the end of the list.

fruit_list = ["Apple", "Banana"]

print(f'Current Fruits List {fruit_list}')

new_fruit = input("Please enter a fruit name:\n")

fruit_list.append(new_fruit)

print(f'Updated Fruits List {fruit_list}')

Output:

Current Fruits List ['Apple', 'Banana']
Please enter a fruit name:
Orange
Updated Fruits List ['Apple', 'Banana', 'Orange']

This example added Orange to the end of the list.

insert()

This function adds an element at the given index of the list.

num_list = [1, 2, 3, 4, 5]

print(f'Current Numbers List {num_list}')

num = int(input("Please enter a number to add to list:\n"))

index = int(input(f'Please enter the index between 0 and {len(num_list) - 1} to add the number:\n'))

num_list.insert(index, num)

print(f'Updated Numbers List {num_list}')

Output:

Current Numbers List [1, 2, 3, 4, 5]
Please enter a number to add to list:
20
Please enter the index between 0 and 4 to add the number:
2
Updated Numbers List [1, 2, 20, 3, 4, 5]

This example added 20 at the index of 2. 20 has been inserted into the list at this index.

extend()

This function adds iterable elements to the list.

extend_list = []

extend_list.extend([1, 2])  # extending list elements

print(extend_list)

extend_list.extend((3, 4))  # extending tuple elements

print(extend_list)

extend_list.extend("ABC")  # extending string elements

print(extend_list)

Output:

[1, 2]
[1, 2, 3, 4]
[1, 2, 3, 4, 'A', 'B', 'C']

This example added a list of [1, 2]. Then it added a tuple of (3, 4). And then it added a string of ABC.

List Concatenation

If you have to concatenate multiple lists, you can use the + operator. This will create a new list, and the original lists will remain unchanged.

evens = [2, 4, 6]
odds = [1, 3, 5]

nums = odds + evens

print(nums)  # [1, 3, 5, 2, 4, 6]

This example added the list of evens to the end of the list of odds. The new list will contain elements from the list from left to right. It’s similar to the string concatenation in Python.

Performance Comparison of Methods

Benchmarking append(), insert(), extend(), and + for efficiency with large lists

When working with large lists, the choice of method for adding elements can significantly impact performance. Here’s a comparison of the efficiency of append(), insert(), extend(), and the + operator for concatenating lists:

Method Time Complexity Space Complexity Example
append() O(1) O(1) my_list.append(element)
insert() O(n) O(1) my_list.insert(index, element)
extend() O(k) O(k) my_list.extend(iterable)
+ operator O(n + k) O(n + k) my_list = my_list + other_list

Note: n is the length of the original list, k is the length of the iterable being added, and element is a single element being added.

In general, append() is the most efficient method for adding a single element to the end of a list. extend() is suitable for adding multiple elements from an iterable. insert() is the least efficient due to the need to shift elements to make space for the new element. The + operator creates a new list, which can be inefficient for large lists.

Memory Considerations

When working with big data or performance-critical applications, memory usage is a crucial factor to consider. The methods mentioned above have different memory implications:

  • append(), insert(), and extend() modify the original list, which means they do not create a new list and thus do not require additional memory for the new list.
  • The + operator creates a new list, which requires additional memory. This can be problematic for large lists or when memory is limited.

How different methods affect memory usage

To illustrate the memory implications, let’s consider an example:

# Original list
my_list = [1, 2, 3, 4, 5]

# Using append()
my_list.append(6)  # No new list created, no additional memory needed

# Using insert()
my_list.insert(2, 6)  # No new list created, no additional memory needed

# Using extend()
my_list.extend([6, 7, 8])  # No new list created, no additional memory needed

# Using the + operator
my_list = my_list + [6, 7, 8]  # A new list is created, additional memory needed

In the example above, append(), insert(), and extend() do not create a new list, so they do not require additional memory. However, the + operator creates a new list, which requires additional memory to store the new list.

By understanding the performance and memory implications of each method, you can choose the most suitable approach for your specific use case, ensuring efficient and effective list operations.

Data Collection:​ Building lists dynamically by adding user inputs or data from files

In Python, you can dynamically build lists by adding user inputs or data from files. This is particularly useful when you need to process a large amount of data that is not known beforehand. For example, you might want to read a list of numbers from a file and perform operations on them.

Here’s an example of how you can dynamically build a list from user inputs:

user_inputs = []
while True:
    user_input = input("Enter a number (or 'quit' to stop): ")
    if user_input.lower() == 'quit':
        break
    user_inputs.append(int(user_input))
print("Your inputs:", user_inputs)

This code will keep asking the user to enter numbers until they type ‘quit’. Each input is converted to an integer and added to the user_inputs list.

Similarly, you can read data from a file and add it to a list. For example:

with open('data.txt', 'r') as file:
    data = file.read().splitlines()
print("Data from file:", data)

This code reads the contents of a file named data.txt, splits it into lines, and stores each line in a list called data.

Data Processing:​ Appending results of computations or transformations to lists

When processing data, you often need to perform computations or transformations on the data and store the results in a list. This can be done using a variety of methods, including list comprehensions, for loops, and map functions.

Here’s an example of using a list comprehension to square each number in a list:

numbers = [1, 2, 3, 4, 5]
squared_numbers = [n**2 for n in numbers]
print("Squared numbers:", squared_numbers)

This code creates a new list squared_numbers containing the square of each number in the numbers list.

Another example is using a for loop to filter out even numbers from a list:

numbers = [1, 2, 3, 4, 5]
even_numbers = []
for n in numbers:
    if n % 2 == 0:
        even_numbers.append(n)
print("Even numbers:", even_numbers)

This code iterates over the numbers list, checks if each number is even, and adds it to the even_numbers list if it is.

Common Errors and Debugging

Error: Using append() instead of extend() when adding multiple elements

One common error in Python is using the append() method to add multiple elements to a list when you should be using extend(). append() adds a single element to the end of the list, while extend() adds multiple elements.

Here’s an example of the incorrect use of append():

my_list = [1, 2, 3]
my_list.append([4, 5, 6])  # Incorrect use of append()
print(my_list)  # Output: [1, 2, 3, [4, 5, 6]]

As you can see, append() added the entire list [4, 5, 6] as a single element to my_list.

The correct way to add multiple elements is to use extend():

my_list = [1, 2, 3]
my_list.extend([4, 5, 6])  # Correct use of extend()
print(my_list)  # Output: [1, 2, 3, 4, 5, 6]

Error: Unexpected list nesting due to improper use of append()

Another common error is unexpected list nesting due to improper use of append(). This can happen when you’re trying to add elements to a list, but you’re actually adding a list within a list.

Here’s an example of unexpected list nesting:

my_list = [1, 2, 3]
my_list.append(4)  # Correct use of append()
my_list.append([5, 6])  # Incorrect use of append() leading to nesting
print(my_list)  # Output: [1, 2, 3, 4, [5, 6]]

As you can see, the element 4 was added correctly, but the elements 5 and 6 were added as a nested list.

To avoid this, make sure to use extend() when adding multiple elements to a list:

my_list = [1, 2, 3]
my_list.append(4)  # Correct use of append()
my_list.extend([5, 6])  # Correct use of extend()
print(my_list)  # Output: [1, 2, 3, 4, 5, 6]

FAQs

1. How do you add items to a list in Python?

To add items to a list in Python, you can use the append() method to add a single element to the end of the list, or the extend() method to add multiple elements. You can also use the insert() method to insert an element at a specific position in the list.

Example:

my_list = [1, 2, 3]
my_list.append(4)  # adds 4 to the end of the list
my_list.extend([5, 6])  # adds 5 and 6 to the end of the list
my_list.insert(0, 0)  # inserts 0 at the beginning of the list
print(my_list)  # Output: [0, 1, 2, 3, 4, 5, 6]

2. How do you add contents to a list in Python?

To add contents to a list in Python, you can use the append() method to add a single element to the end of the list, or the extend() method to add multiple elements. You can also use the insert() method to insert an element at a specific position in the list.

Example:

my_list = [1, 2, 3]
my_list.append(4)  # adds 4 to the end of the list
my_list.extend([5, 6])  # adds 5 and 6 to the end of the list
my_list.insert(0, 0)  # inserts 0 at the beginning of the list
print(my_list)  # Output: [0, 1, 2, 3, 4, 5, 6]

3. How do you insert something into a list in Python?

To insert something into a list in Python, you can use the insert() method. This method takes two arguments: the index where you want to insert the element, and the element itself.

Example:

my_list = [1, 2, 3]
my_list.insert(0, 0)  # inserts 0 at the beginning of the list
my_list.insert(2, 10)  # inserts 10 at the third position in the list
print(my_list)  # Output: [0, 1, 10, 2, 3]

4. What is append() in Python?

In Python, append() is a method that adds a single element to the end of a list.

Example:

my_list = [1, 2, 3]
my_list.append(4)  # adds 4 to the end of the list
print(my_list)  # Output: [1, 2, 3, 4]

5. How do I add a single element to the end of a list in Python?

To add a single element to the end of a list in Python, you can use the append() method.

Example:

my_list = [1, 2, 3]
my_list.append(4)  # adds 4 to the end of the list
print(my_list)  # Output: [1, 2, 3, 4]

6. What’s the difference between append() and extend()?

The main difference between append() and extend() is that append() adds a single element to the end of the list, while extend() adds multiple elements to the end of the list. If you pass a list to append(), it will add the entire list as a single element to the end of the list. If you pass a list to extend(), it will add each element of the list individually to the end of the list.

Example:

my_list = [1, 2, 3]
my_list.append([4, 5])  # adds [4, 5] as a single element to the end of the list
print(my_list)  # Output: [1, 2, 3, [4, 5]]
my_list.extend([6, 7])  # adds 6 and 7 to the end of the list
print(my_list)  # Output: [1, 2, 3, [4, 5], 6, 7]

7. Can I combine two lists without modifying the originals?

Yes, you can combine two lists without modifying the originals by using the + operator. This will create a new list that is a concatenation of the two original lists.

Example:

list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2  # creates a new list that is a concatenation of list1 and list2
print(combined_list)  # Output: [1, 2, 3, 4, 5, 6]
print(list1)  # Output: [1, 2, 3] (list1 remains unchanged)
print(list2)  # Output: [4, 5, 6] (list2 remains unchanged)

8. How do I add multiple elements from another list?

To add multiple elements from another list, you can use the extend() method. This method takes an iterable (such as a list) as an argument, and adds each element of the iterable to the end of the list.

Example:

my_list = [1, 2, 3]
other_list = [4, 5, 6]
my_list.extend(other_list)  # adds each element of other_list to the end of my_list
print(my_list)  # Output: [1, 2, 3, 4, 5, 6]

Conclusion

Python provides multiple ways to add elements to a list. We can append an element at the end of the list, and insert an element at the given index. We can also add a list to another list. If you want to concatenate multiple lists, then use the overloaded + operator. For more in-depth tutorials on Python lists, check out the following resources:

References:

Continue building with DigitalOcean Gen AI Platform.

About the author(s)

Anish Singh Walia
Anish Singh WaliaSr Technical Writer
See author profile
Category:
Tutorial
Tags:

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
JournalDev
DigitalOcean Employee
DigitalOcean Employee badge
April 23, 2020

is there anything like list.add(num)

- harshita

    JournalDev
    DigitalOcean Employee
    DigitalOcean Employee badge
    August 18, 2020

    new_list=elements[::2] #explain this

    - Varada

      JournalDev
      DigitalOcean Employee
      DigitalOcean Employee badge
      November 23, 2020

      how to use add method like i mean list.add(x)… explain

      - Abdul

        JournalDev
        DigitalOcean Employee
        DigitalOcean Employee badge
        December 6, 2020

        list1 = [“M”, “na”, “i”, “Ke”] list2 = [“y”, “me”, “s”, “lly”] list3 = [i + j for i,j in zip(list1, list2)] How is the above different to this; list3 = list() for i,j in zip(list1, list2): list3 = i + j how are these 2 codes different from one another?

        - Asad Jaffer

          Join the Tech Talk
          Success! Thank you! Please check your email for further details.

          Please complete your information!

          Become a contributor for community

          Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

          DigitalOcean Documentation

          Full documentation for every DigitalOcean product.

          Resources for startups and SMBs

          The Wave has everything you need to know about building a business, from raising funding to marketing your product.

          Get our newsletter

          Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

          New accounts only. By submitting your email you agree to our Privacy Policy

          The developer cloud

          Scale up as you grow — whether you're running one virtual machine or ten thousand.

          Get started for free

          Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

          *This promotional offer applies to new accounts only.