CARVIEW |
- Log in to:
- Community
- DigitalOcean
- Sign up for:
- Community
- DigitalOcean
Sr Technical Writer

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.
append()
: append the element to the end of the list.insert()
: inserts the element before the given index.extend()
: extends the list by appending elements from the iterable.- 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:
- Familiarity with installing Python 3. And familiarity with coding in Python. How to Code in Python 3 series or using VS Code for Python.
This tutorial was tested with Python 3.9.6.
append()
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()
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()
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()
, andextend()
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:
- How to Add to a List in Python
- Concatenating Lists in Python
- Joining Lists in Python
- Converting a String to a List in Python
References:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
About the author
Helping Businesses stand out with AI, SEO, & Technical content that drives Impact & Growth | Senior Technical Writer @ DigitalOcean | 2x Medium Top Writers | 2 Million+ monthly views & 34K Subscribers | Ex Cloud Engineer @ AMEX | Ex SRE(DevOps) @ NUTANIX
Still looking for an answer?
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
- Table of contents
- Prerequisites
- `append()`
- `insert()`
- `extend()`
- List Concatenation
- Performance Comparison of Methods
- Data Collection: Building lists dynamically by adding user inputs or data from files
- Data Processing: Appending results of computations or transformations to lists
- Common Errors and Debugging
- FAQs
- Conclusion
Deploy on DigitalOcean
Click below to sign up for DigitalOcean's virtual machines, Databases, and AIML products.
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.