pulling set of unique values from a list

Ben Davies ben.m.davies at baesystems.com
Wed Jan 14 15:32:34 CET 2004

I need to get [1,2,3] from [1,1,1,2,2,3,3] with as little effort possible
for my CPU (and keyboard).
I'd half expected there to be a list.values method to do this, but there
isn't so I've have had to use a dictionary object:

>>> l=[1,1,1,2,2,2,3,3,3]
>>> dict.fromkeys(l).keys()
[1, 2, 3]

of course another way would be to do it 'by hand' like this:

>>> l=[1,1,1,2,2,2,3,3,3]
>>> values=[]
... for v in l:
...     if not v in values: values.append(v)
>>> values
[1, 2, 3]

personally I prefer the dictionary one-liner, but with the second iterative
way it is probably more obvious what the code is doing (and perhaps more
Is there any better way to do this that I've missed, I was kind of surprised
not to find a values() method on the built-in list type?

More information about the Python-list mailing list