Python Principles
Python Q&A

How do I remove duplicates from a list?


The easiest way is to convert it to a set, because sets, by definition, don't have duplicates:

numbers = [1, 2, 1, 2]
s = set(numbers)

This will print 2 in the screen.

You can always convert it back to a list afterwards if you need to. Note, however, that sets are unordered, so your list will lose its order:

numbers = list(set(numbers))

If you need to keep the order, one solution is to construct a new list:

numbers = [1, 2, 1, 2]
no_dups = []
for n in numbers:
    if n not in no_dups:


However this is slow for large lists, because n not in no_dups takes linear time to run, since it requires a scan through the whole list. To speed that check up, you could create a set: seen = set() and put numbers in it and use n not in seen. The reason this results in a speedup is that checking if an item is in a set takes constant time in Python.