# Python list - Remove consecutive duplicates (3 Ways)

Learn 3 ways of removing consecutive duplicates from a list in Python.

In this article, we will discuss 3 different ways of removing consecutive duplicate elements from a python list. This is what we want to achieve.

``````input - [1, 2, 4, 7, 3, 7, 8, 4, 4, 9]
output - [1, 2, 4, 7, 3, 7, 8, 4, 9]``````

So we are not removing all duplicated elements. We are only eliminating consecutive duplicate elements.

Let’s check out the 3 different ways.

Method 1 - For loops will never go out of fashion

``````x = [1,2,4,7,3,7,8,4,4,9]

previous_value = None
new_lst = []

for elem in x:
if elem != previous_value:
new_lst.append(elem)
previous_value = elem

print(new_lst)
>>> [1, 2, 4, 7, 3, 7, 8, 4, 9]``````

Method 2 - Let’s be more Pythonic! Use Enumerate

Here is a one-liner solution to the problem.

``````x = [1,2,4,7,3,7,8,4,4,9]

print([v for i, v in enumerate(x) if i == 0 or v != x[i-1]])
>>> [1, 2, 4, 7, 3, 7, 8, 4, 9]``````

Tell me that wasn’t pretty !!

Method 3 - It’s Python! There must be a library

Here is the 3rd way using the `itertools` library.

``````from itertools import groupby

x = [1,2,4,7,3,7,8,4,4,9]
print([i[0] for i in groupby(x)])
>>> [1, 2, 4, 7, 3, 7, 8, 4, 9]``````

Now the question is, which one of the above methods is the fastest?

Using the `time` and `matplotlib` library, I plotted the time taken for each of those methods.

You can see that the 3rd approach (using the itertools library) is the fastest of all the 3 ways discussed in this article.

Hope you enjoyed this article. Let me know if you have a better way of doing this, through the comments.