Home / Fundamentals

# How to concatenate two lists in Python

In Python, it is often useful to combine two or more lists into a single list. This process is known as concatenation. There are several ways to concatenate lists in Python, and in this article, we will discuss some of the most common methods.

## Method 1: Using the + operator

One of the simplest ways to concatenate two lists is to use the + operator. This operator can be used to add two lists together, resulting in a new list that contains all the elements of the original lists.

Here is an example of using the + operator to concatenate two lists:

```list1 = [1, 2, 3]
list2 = [4, 5, 6]

concatenated_list = list1 + list2
print(concatenated_list)  # Output: [1, 2, 3, 4, 5, 6]
```

The + operator is a quick and easy way to concatenate lists, but it can become inefficient if you are working with very large lists. In this case, it may be more efficient to use one of the other methods described below.

## Method 2: Using the extend() method

Another way to concatenate two lists is to use the `extend()` method of one of the lists. The `extend()`() method adds the elements of a given list to the end of the list on which it is called.

Here is an example of using the `extend()`() method to concatenate two lists:

```list1 = [1, 2, 3]
list2 = [4, 5, 6]

list1.extend(list2)
print(list1)  # Output: [1, 2, 3, 4, 5, 6]
```

The `extend()` method is more efficient than the + operator for concatenating lists, especially if you are working with large lists. However, it is important to note that the `extend()` method modifies the original list, whereas the + operator creates a new list.

## Method 3: Using the itertools.chain() function

If you want to concatenate two lists without modifying either of the original lists, you can use the `itertools.chain()` function from the itertools module. This function returns an iterator that sequentially traverses the elements of the given lists.

Here is an example of using the `itertools.chain()` function to concatenate two lists:

```import itertools

list1 = [1, 2, 3]
list2 = [4, 5, 6]

concatenated_list = list(itertools.chain(list1, list2))
print(concatenated_list)  # Output: [1, 2, 3, 4, 5, 6]
```

The `itertools.chain()` function is a convenient way to concatenate lists without modifying the original lists. However, it should be used with caution, as it creates an iterator that loads all the elements of the lists into memory, which can be inefficient if you are working with very large lists.

## Method 4: Using list comprehension

You can also use list comprehension to concatenate two lists. List comprehension is a concise way to create a list using a single line of code.

Here is an example of using list comprehension to concatenate two lists:

```list1 = [1, 2, 3]
list2 = [4, 5, 6]

concatenated_list = [x for x in list1] + [x for x in list2]
print(concatenated_list)  # Output: [1, 2, 3, 4, 5, 6]
```

List comprehension is a powerful and efficient way to concatenate lists, but it can be difficult to read and understand if you are not familiar with this syntax.