[Tutor] Puzzled by print lst.sort()
Liam Clarke
ml.cyresse at gmail.com
Sat Sep 30 12:22:16 CEST 2006
Dick Moores wrote:
> >>> lst = [5,3,7,6,2]
> >>> lst.sort()
> >>> lst
> [2, 3, 5, 6, 7]
> >>> lst = [5,3,7,6,2]
> >>> print lst.sort()
> None
> >>> lst
> [2, 3, 5, 6, 7]
>
> I'm wondering why "print lst.sort()" doesn't print the newly sorted
> list, but instead prints "None". In fact, the sorting has taken place
> because of "print lst.sort()". Is this behavior a Good Thing in Python?
>
> Dick
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
>
Hi Dick,
A Python list sort is destructive, as you can see - it has modified lst.
So, to emphasise that it is destructive, it returns None. You'll find
this in most destructive methods and functions in Python.
However, as of Python 2.4, there's a new built-in function that has the
functionality you want:
>>> x = [3,1,2]
>>> y = sorted(x)
>>> print y
[1, 2, 3]
>>> print x
[3, 1, 2]
You'll note that sorted() is *not *destructive - that is, x is not
modified.
Regards,
Liam Clarke
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20060930/1a19d582/attachment.html
More information about the Tutor
mailing list