17 de mayo de 2011

Python: Removing duplicates from a list in one line

Yes, indeed, Python rules:

# Let's create a list with duplicated elements:
ls = [1,1,1,2,2,1,5,4,3,2,1]
# And let's now remove them in just one line:
l2 = list(set(ls))
# See the result:
print l2
[1, 2, 3, 4, 5]


Voilà!

UPDATE:

This way the order is preserved and looks nice:

from collections import OrderedDict
list(OrderedDict.fromkeys(xs))


+Franco Pellegrini

2 comentarios:

frapell dijo...

Guarda con eso porque no te preserva el orden...

Algo (muy feo) que podrias hacer es

>>> [i for i in l if i not in locals()['_[1]']]

Matías dijo...

En mi caso no importaba el orden, sólo que se eliminaran los duplicados.

Buen comentario de todos modos, Frapell.