Dick Moores wrote:
Hi Dick,>>> 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@python.org http://mail.python.org/mailman/listinfo/tutor 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 |
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor