Strange behavior with sort()
Eduardo A. Bustamante López
dualbus at gmail.com
Thu Feb 27 01:40:53 EST 2014
On Thu, Feb 27, 2014 at 07:24:24AM +0100, 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
> --
> https://mail.python.org/mailman/listinfo/python-list
Because when you call the .sort() method on a list, it does the sort
in-place, instead of returning a sorted copy of the list. Check this:
>>> [2,1,3].sort()
>>>
The method does not return a value, that's why the direct comparison
fails.
What you might want is to use the sorted() method on the list, like
this:
>>> sorted([2,1,3])
[1, 2, 3]
>>> sorted([2,1,3]) == [1,2,3]
True
--
Eduardo Alan Bustamante López
More information about the Python-list
mailing list