Joining two lists in Python is a common operation when working with data structures, as it allows you to merge different sets of information highly efficiently.
Python offers other approaches to combine lists, such as list comprehension and extending lists. The easiest approach is the ‘
+‘ operator as it stands out for its simplicity and ease of use. This powerful tool allows you to concatenate lists in just a line of code.
Basics of Lists in Python
Lists in Python are versatile and powerful data structures used to store a collection of items, where each item can be of any type, such as numbers, strings, or other objects. To create a list in Python, you can simply use square brackets
 and separate the elements inside them with commas 📝.
For example, here’s a list of numbers and a list of strings:
nums = [1, 2, 3, 4, 5] words = ["apple", "banana", "cherry"]
You can access individual elements of a list using indexing, and you can also modify, add, or remove elements as needed. Python provides various built-in functions and methods that help you work with lists efficiently 🚀.
💡 Free Cheat Sheet: Python List Methods Cheat Sheet [Instant PDF Download]
Now, let’s say you have two lists and you want to join them. There are multiple ways to do this in Python. The easiest and most common way is to use the
+ operator, which concatenates the elements of two lists into a new list:
list1 = [1, 2, 3] list2 = [4, 5, 6] combined_list = list1 + list2
In this example,
combined_list will be
[1, 2, 3, 4, 5, 6].
Another method to join lists is by using the
extend() function, which appends the elements of one list to another, modifying the original list in place:
After executing this code,
list1 will contain
[1, 2, 3, 4, 5, 6]. Both methods have their own advantages and use cases, depending on whether you want to create a new list or update an existing one 🧰.
Joining Two Lists: Simple Methods
Next, let’s discuss two simple and efficient methods to join or concatenate two lists in Python. These methods include using the
+ operator and the
extend() method. Let’s explore each approach with relevant examples and explanations.
Using the + Operator
+ operator is a straightforward way to combine two lists in Python. Here’s an example of how you can join two lists using the
list1 = [1, 2, 3] list2 = [4, 5, 6] joined_list = list1 + list2 print(joined_list) # Output: [1, 2, 3, 4, 5, 6]
Simply put, the
+ operator takes the elements from both lists and creates a new list with the combined elements. This method is easy to use and understand 🤓. However, keep in mind that it creates a new list, which might not be optimal if you’re working with large lists.
Using the extend() Method
Another way to join two lists in Python is by using the
extend() method. This method appends the elements from one list to another, without creating a new list, making it more memory-efficient.
Here’s an example of how to use the
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]
In this example, the
extend() method takes the elements from
list2 and appends them to the end of
list1. This method is particularly useful when working with large datasets as it doesn’t create a new list, conserving memory 🚀.
You can learn about this method in our detailed guide on the Finxter blog: 👇
💡 Recommended: Python List
Both of these methods are practical and helpful for joining lists in Python. Choose the one that best suits your needs, whether it is the simple
+ operator or the more memory-efficient
Joining Two Lists: Alternative Methods
There are alternative methods to join two lists in Python, such as list comprehension, for loops, and unpacking lists. These methods can result in a more efficient, readable, or flexible way to combine or merge lists. Let’s dive in! 🚀
Using List Comprehension
List comprehension is a concise way to create a new list by applying an expression to each element in an existing list. If you want to learn the basics of it, check out the blog tutorial or watch this explainer video:
You can use list comprehension to combine two lists, like this:
list1 = [1, 2, 3] list2 = [4, 5, 6] combined_list = [x for lists in zip(list1, list2) for x in lists]
In this example, the
zip() function creates pairs of elements from the input lists, and the list comprehension flattens these pairs into a single list.
I have written a blog post on the
zip() function, feel free to check it out!
Using for Loop
Another method to join lists in Python is using a
for loop. This approach can be useful when you need to perform additional operations as you join the lists or when you want to control the order in which elements are added.
list1 = [1, 2, 3] list2 = [4, 5, 6] combined_list =  for item1, item2 in zip(list1, list2): combined_list.append(item1) combined_list.append(item2)
zip() function creates pairs of elements from
list2, and the for loop iterates through these pairs, appending them to the new list one by one.
Unpacking lists is a simple and efficient way to join two lists. You can use the asterisk
* operator to unpack the elements of each list and create a new combined list.
list1 = [1, 2, 3] list2 = [4, 5, 6] combined_list = [*list1, *list2]
In this example, the
* operator unpacks the elements of
list2 and creates a new list containing all the elements in their original order. I know unpacking can be tough to grasp initially, so check out our blog tutorial as well: 👇
💡 Recommended: Python Unpacking Operator
Joining Lists with Sets
Joining two lists in Python can be done using sets.
Sets are an unordered collection of unique elements, and you can perform various operations like union, intersection, and difference on them.
In this section, we will explore how to use sets to join two lists, ensuring that the merged list contains only unique elements. 😊
First, you need to convert your lists into sets using the
set() function. This will remove any duplicate elements within each list. Then, you can use the
union() method or the
| operator to join the sets. Finally, convert the resulting set back into a list using the
list() function. Here’s a quick example:
list1 = [1, 2, 3, 4] list2 = [3, 4, 5, 6] set1 = set(list1) set2 = set(list2) merged_set = set1 | set2 result = list(merged_set) print(result) # Output: [1, 2, 3, 4, 5, 6]
Alternatively, you can perform other set operations:
set1 & set2or
set1 - set2or
Keep in mind that sets don’t maintain the order of elements, so the resulting list might not have the same order as the original lists. If maintaining the order is crucial, you might want to consider using a different method to join your lists.
Joining Lists with itertools and Pandas
In this section, we will explore two effective methods to join lists in Python: using
itertools.chain and Pandas Series combined with
zip. These techniques provide efficient and easy-to-understand ways to concatenate lists, ultimately enhancing the readability and organization of your code. 😃
Using itertools.chain 🧩
To begin, let’s employ
itertools.chain, a powerful function that allows you to concatenate multiple lists quickly. This method is optimal for large numbers of lists as it delivers faster results compared to using sum:
import itertools list1 = [1, 2, 3] list2 = [4, 5, 6] combined_list = list(itertools.chain(list1, list2)) print(combined_list) # Output: [1, 2, 3, 4, 5, 6]
itertools.chain, you can conveniently join lists while retaining a clear and concise code structure.
Using Pandas Series and Zip 🐼
Another effective approach involves using
pandas.Series and the
zip function. With a Pandas Series, you can store one-dimensional data, making it the perfect structure to manipulate lists.
zip function, on the other hand, pairs elements from the input lists, creating a new list with tuples:
import pandas as pd list1 = [1, 2, 3] list2 = [4, 5, 6] series1 = pd.Series(list1) series2 = pd.Series(list2) zipped_series = pd.Series(list(zip(series1, series2))) print(zipped_series) # Output: 0 (1, 4) # 1 (2, 5) # 2 (3, 6)
This method provides a robust and efficient solution to combine lists while maintaining appropriate formatting for improved readability.
The most straightforward method to join two lists is using the
+ operator, which is both simple and easy to understand. Example:
list3 = list1 + list2. However, the original lists remain unaltered. This method is great for quick concatenation where you don’t need to modify the original lists.
Another approach is using the
extend() method, which modifies the first list by adding elements from the second list. This method is suitable when you want to update the original list with additional elements. Example:
List comprehensions can be helpful in joining lists too, especially if you need to apply a condition or a transformation to the elements. Example:
[x for sublist in (list1, list2) for x in sublist].
Finally, using the
chain() function from the
itertools module allows you to join multiple lists efficiently. This method is an excellent choice if performance is a concern or if you need a more advanced joining method.
Feel free to check out our full guide on Python lists on the Finxter Computer Science Academy:
💡 Recommended: Mastering Python Lists
While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com that has taught exponential skills to millions of coders worldwide. He’s the author of the best-selling programming books Python One-Liners (NoStarch 2020), The Art of Clean Code (NoStarch 2022), and The Book of Dash (NoStarch 2022). Chris also coauthored the Coffee Break Python series of self-published books. He’s a computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.