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]

I'd vote for the first form, though I might make a generator out of it.

gen = (v for i,v in enumerate(x) if x[i]!=x[i-1] or i==0)
print list(gen)

Of course, that depends on the lifetime of the various objects. Interestingly, if you modify x after defining gen, but before using it, gen will use the new contents of x.

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to