In itertools , which works here:
import itertools
[key for key,seq in itertools.groupby([1,1,1,2,2,3,4,4])]
You can also write a generator:
def remove_adjacent(items):
it = iter(items)
last = next(it)
yield last
for current in it:
if current != last:
yield current
last = current
print list(remove_adjacent([1,1,1,2,2,3,4,4]))