Algorithm help per favore
eppstein at ics.uci.edu
Wed Jun 18 22:27:46 CEST 2003
In article <3v3Ia.109349$pR3.2389728 at news1.tin.it>,
Alex Martelli <aleax at aleax.it> wrote:
> > Ok, what's the quickest way to build a new object that's guaranteed
> > unequal to any previous object? E.g.
> > [x for x, y in zip(L, [lambda x:x]+L) if x != y]
> > There must be a better way to do this than with a lambda.
> Actually, "lambda:0" is a good candidate for "an object that's
> not gonna equal any object with a different id()" -- it's just
> 8 characters. "object()" is also 8 characters. Not sure what
> you mean by "quickest" or "better", but number of characters in
> the source seems an objective-enough measurement.
Sorry for the imprecise language. I think what I really meant was 'most
pythonic'. I prefer object() to lambda:0 since lambda to me implies
some kind of functional programming which is not present here.
It's tempting to use "not L" instead (since what I want is an object
that's not equal to L) but that fails when L is empty.
David Eppstein http://www.ics.uci.edu/~eppstein/
Univ. of California, Irvine, School of Information & Computer Science
More information about the Python-list