I'm also curious to know whether you stumbled upon this while trying to do something pragmatic, or just trying to tear Python apart for fun :)
On Mon, Nov 14, 2011 at 2:16 AM, Ram Rachum <[email protected]> wrote: > Very interesting Rani! > > I investigated this by making a replacement of the `len` function and > putting breakpoints inside of it. > > The answer: When you call `list.sort`, it first empties the list, and then > starts measuring the length of the items for sorting. So when measuring the > list itself, it gets a result of 0 because the list has been emptied. > > The question is: Is there a good reason for Python behaving like that? > > > Ram. > > On Mon, Nov 14, 2011 at 2:01 AM, Rani Hod <[email protected]> wrote: > >> Dear Abby, >> >> Any idea why sorted and list.sort behave differently in the following >> example? >> (specifically, why x is not sorted in the end?) >> >> Thanks, >> R. >> >> ------------8<--------------------8<-------- >> >>> x = ['one','two','three']; x.append(x) >> >>> sorted(x, key=len) >> ['one', 'two', ['one', 'two', 'three', [...]], 'three'] >> >>> x.sort(key=len); x >> [[...], 'one', 'two', 'three'] >> ------------8<--------------------8<-------- >> >> _______________________________________________ >> Python-il mailing list >> [email protected] >> http://hamakor.org.il/cgi-bin/mailman/listinfo/python-il >> >> >
_______________________________________________ Python-il mailing list [email protected] http://hamakor.org.il/cgi-bin/mailman/listinfo/python-il
