Strange behavior with sort()

Larry Hudson orgnut at yahoo.com
Thu Feb 27 02:23:29 EST 2014


On 02/26/2014 10:24 PM, ast wrote:
> Hello
>
> box is a list of 3 integer items
>
> If I write:
>
>     box.sort()
>     if box == [1, 2, 3]:
>
>
> the program works as expected. But if I write:
>
>     if box.sort() == [1, 2, 3]:
>
> it doesn't work, the test always fails. Why ?
>
> Thx

sort() sorts the sequence in place, but it _returns_ None.
Your second example becomes the equivalent of:

box.sort()
if None == [1, 2, 3]:

So although your box does become sorted, it is NOT what is compared in your if statement.

BTW, the sorted() function won't work here either.  It will return the sorted sequence, but it 
leaves the original unchanged.

      -=- Larry -=-




More information about the Python-list mailing list