Strange behavior with sort()

Frank Millman frank at chagford.com
Thu Feb 27 01:39:18 EST 2014


"ast" <nomail at invalid.com> wrote in message 
news:530eda1d$0$2061$426a74cc at news.free.fr...
> 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 ?
>

Try the following in the interpreter -

>>> box = [3, 2, 1]
>>> box.sort()
>>> box
[1, 2, 3]

>>> box = [3, 2, 1]
>>>print(box.sort())
None
>>> box
[1, 2, 3]

box.sort() sorts box 'in situ', but does not return anything. That is why 
the second example prints None.

In your second example, you are comparing the return value of box.sort() 
with [1, 2, 3]. As the return value is None, they are unequal.

HTH

Frank Millman






More information about the Python-list mailing list