Test 0 and false since false is 0
On 2017-07-09, Paul D. DeRocco <pderocco at ix.netcom.com> wrote:
>> From: Sayth Renshaw
>> I have been reading this solution
>> > >>> after = sorted(before, key=lambda x: x == 0 and type(x) == int)
>> it is really good, however I don't understand it enough to
>> reimplement something like that myself yet.
>> Though I can that lambda tests for 0 that is equal to an int
>> why does sorted put them to the end?
> Because the expression "x == 0 and type(x) == int" has a value of either
> False or True, and it sorts all the False values before the True values,
> leaving the order within those sets unchanged.
> That said, "x is 0" is even simpler.
Two equivalent integer objects _might_ be the same object, but that's
not guaranteed. It's an _implementation_detail_ of CPython that small
integers are cached:
>>> x = 0
>>> x is 0
But larger integers aren't:
>>> a = 123412341234
>>> a is 123412341234
The first example could have returned False and been correct.
Grant Edwards grant.b.edwards Yow! TONY RANDALL! Is YOUR
at life a PATIO of FUN??