hi mike, welcome to python. :-) your query is quite common amongst beginners, and i have actually spend some time on this topic in my courses.
On 2/17/06, Michael Broe <[EMAIL PROTECTED]> wrote: > I think I understand this sorting-a-list 'in place' stuff, and things > of that kind (reversing for example); but I am finding it very > difficult to get used to, since sorting a list doesn't return the > sorted list as a value, but simply does the work as a side effect. > > def sort_print(L): > print L.sort() > > def upper_print(s): > print s.upper() > > (The fact that the second works and the first doesn't really does bug > me as a newbie.) as i hinted to above, this confusion happens quite regularly. > Anyway, first question: is the fact that the first doesn't work > purely a function of the fact that lists are mutable? this is the primary reason. the side effect is also a reason why the sorted() BIF (built-in function) was added to Python. > Second question. Do I really have to write the sort_print() function > like this: if using sorted() doesn't work for you, then yes. > Third question: is this in-place behavior of methods in effect > restricted to lists, or are there other places I should be on the > lookout for it? since most all other Python types are immutable, no in-place operations can occur, so this is not an issue. and altho dictionaries are Python's other mutable type (ignoring sets at the moment), ordering isn't a feature of hashes/mapping types, so no one gets bitten there either. hope this helps... a little! -- wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "Core Python Programming", Prentice Hall, (c)2006,2001 http://corepython.com wesley.j.chun :: wescpy-at-gmail.com cyberweb.consulting : silicon valley, ca http://cyberwebconsulting.com _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor