[EMAIL PROTECTED] wrote: > What are the considerations in choosing between: > > return [a, b, c] > > and > > return (a, b, c) # or return a, b, c > A common explanation for this is that lists are for homogenous collections, tuples are for when you have heterogenous collections i.e. related but different things.
If you follow this line of argument then when you want to return some values from a function, e.g. url, headers and data a tuple would be the appropriate thing to use. If you really are returning a homogenous collection (e.g. top 5 urls) then a list would be more appropriate. Another way to look at it is what you expect the caller to do with the results. If they are just going to unpack a fixed set of values then a tuple makes sense. If you write: return url, headers, data then the caller writing: url, headers, data = frobozz() has a certain symmetry. It isn't set in stone of course: use whatever you want or whatever feels right at the time. > Why is the immutable form the default? > It isn't. It uses whichever type you specify but tuples may involve a little less typing. -- http://mail.python.org/mailman/listinfo/python-list