Last Updated on August 10, 2023 by Mayank Dham
In Python, working with lists is a common and essential task for many programmers. Lists, being a versatile data structure, offer several methods to manipulate their elements. Two such frequently used methods are append() and extend(). Although these methods might seem similar at first glance, they serve distinct purposes and can have significant implications on the list’s structure and content.
In this article, we will delve into the key differences between append() and extend() in Python. We will explore how each method works, what happens when they are applied to lists, and when to use one over the other. By the end of this guide, you will have a clear understanding of how to leverage append() and extend() effectively in your Python code and make informed decisions based on your specific programming requirements.
What is the append function in python?
In Python, the append() function is a built-in method that is used to add a single element to the end of a list. It is one of the fundamental list manipulation methods and is often used to dynamically grow a list by adding elements to it.
The syntax for the append() function is quite straightforward:
list_name.append(element)
Here, list_name is the name of the list to which you want to add the element.
Let’s see an example of how to use the append() function:
Initializing an empty list
fruits = []
Adding elements to the list using append()
fruits.append(‘apple’)
fruits.append(‘banana’)
fruits.append(‘orange’)
print(fruits) # Output: [‘apple’, ‘banana’, ‘orange’]
As you can see in the example above, each call to append() adds the specified element to the end of the list. The list grows one element at a time, and the order in which the elements are appended is maintained.
What is an extend Function in Python?
In Python, the extend() function is a built-in method that is used to append multiple elements from an iterable (such as another list, tuple, or any other sequence) to the end of an existing list. Unlike the append() method, which adds only one element at a time, extend() allows you to add several elements in a single operation.
The syntax for the extend() function is as follows:
list_name.extend(iterable)
Here, list_name is the name of the list to which you want to add elements, and iterable is the sequence of elements that you want to add to the list.
Let’s see an example of how to use the extend() function:
Initializing an empty list
fruits = [‘apple’, ‘banana’]
Adding elements from another list using extend()
additional_fruits = [‘orange’, ‘grape’, ‘mango’]
fruits.extend(additional_fruits)
print(fruits) # Output: [‘apple’, ‘banana’, ‘orange’, ‘grape’, ‘mango’]
In the example above, the extend() function is used to add the elements from the additional_fruits list to the fruits list. As a result, the fruits list now contains all the elements from both lists.
Difference between append and extend in Python
Here are the key points, that are the main difference between append and extend in python
Append | Extend |
---|---|
The argument element given as input is appended to the end of the list. | Each iterable element supplied as a parameter is added to the end of the original list. |
The list’s length grows by one. | The length of the list increases in proportion to the number of items in the iterable. |
Append() method has a constant time complexity of O(1) The append() method has a constant time complexity, this is because lists are spontaneously accessed, the very last item can be reached in O(1) time, which is why adding any new item at the end of the list takes O(1) time. | Extend() method in Python shows a time complexity equal to O(n) where the variable n demonstrates the size of the iterable since the function has to iterate through the length of the list. |
Comparing Extend and Append in Single Program
Here is the single program that will compare the key difference between append and extend in Python.
Code Implementation
# Let's write a program in Python to understand # difference between the two discussed methods # the first step would be assigning two lists list_one = [2, 3, 4] list_two = [2, 3, 4] x = [5, 6] # use the two different methods list_one.append(x) list_two.extend(x) # displaying the lists using the print statement. print(list_one) #printing the second list print(list_two)
Output
[2, 3, 4, [5, 6]]
[2, 3, 4, 5, 6]
Conclusion
In conclusion, understanding the difference between append() and extend() is crucial for efficient list manipulation in Python. Both methods are used to add elements to a list, but they serve different purposes and have distinct implications on the list’s structure and content.
The append() function is used to add a single element to the end of the list. It is simple and efficient for appending individual elements.
On the other hand, the extend() function is employed to add multiple elements from an iterable (e.g., another list, tuple) to the end of the list. It is useful for combining or merging lists efficiently.
FAQ on difference between append and extend in Python:
Here are some FAQs on the difference between append and extend in Python.
1. Can append() and extend() be used interchangeably?
No, append() and extend() cannot be used interchangeably. They have different purposes. Using extend() to add a single element will result in unexpected behavior, as the entire iterable will be added as a single element. Similarly, append() cannot be used to add multiple elements at once.
2. Can extend() add elements from different data types?
Yes, extend() can add elements from any iterable, including lists, tuples, strings, and other sequences. As long as the iterable is compatible with the list, it can be used with extend().
3. Which method is more efficient, append() or extend()?
The efficiency of append() and extend() depends on the specific use case. If you need to add individual elements, append() is more efficient since it involves a single operation. For adding multiple elements from an iterable, extend() is generally more efficient than using a loop to add elements one by one.
4. Can append() and extend() be used on other data structures in Python?
No, append() and extend() are specific to lists in Python. They are list-specific methods and cannot be used on other data structures like tuples, sets, or dictionaries.
5. Can append() and extend() be used on an empty list?
Yes, both append() and extend() can be used on an empty list. If you use append() on an empty list, it will add the specified element as the first element of the list. If you use extend() on an empty list, it will add all elements from the iterable, making the list identical to the iterable.