[Tutor] Eliminating consecutive duplicates in a list

Robert Berman bermanrl at cfl.rr.com
Thu Jun 18 17:08:01 CEST 2009


Whoops. That's called assuming what I read is really what I see. A good
lesson in reading questions twice.

I remember this from a post some time back and I remember having been
intrigued by it. I used Google, and since I tend to keep extensive
notes, the solution I found is not uniquely mine, but it does work.
http://wasstock.com/?p=12

Robert


On Thu, 2009-06-18 at 16:23 +0200, karma wrote:
> Hi Robert,
> 
> Thanks for the link. However, I am looking for eliminating consecutive
> duplicates rather than all duplicates - my example wasn't clear,
> apologies for that.
> 
> x=[1,1,1,3,2,2,2,4,4,2,2]
> 
> [1 ,3 ,2 ,4 ,2 ]
> 
> 
> 2009/6/18 Robert Berman <bermanrl at cfl.rr.com>:
> > This might help: http://code.activestate.com/recipes/52560/
> >
> > Robert
> >
> >
> > On Thu, 2009-06-18 at 15:15 +0200, karma wrote:
> >> I was playing around with eliminating duplicates in a list not using
> >> groupby. From the two solutions below, which is more "pythonic".
> >> Alternative solutions would be welcome.
> >>
> >> Thanks
> >>
> >> x=[1,1,1,3,2,2,2,2,4,4]
> >>
> >> [v for i,v in enumerate(x) if x[i]!=x[i-1] or i==0]
> >>
> >> [x[i] for i in range(len(x)-1) if i==0 or x[i]!=x[i-1]]
> >>
> >> output:
> >> [1, 3, 2, 4]
> >> _______________________________________________
> >> Tutor maillist  -  Tutor at python.org
> >> http://mail.python.org/mailman/listinfo/tutor
> >
> >



More information about the Tutor mailing list