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

Reply via email to