"Hendrik van Rooyen" <[EMAIL PROTECTED]> wrote: > "Duncan Booth" <[EMAIL PROTECTED]> wrote: >> "Hendrik van Rooyen" <[EMAIL PROTECTED]> wrote: >> >> > Aside from the hashing issue, there is nothing that a tuple can do >> > that can't be done as well or better by a list. >> >> There are a few other cases where you have to use a tuple, for >> example in a try..except statement the exception specification must >> be an exception to be caught or a tuple of exception specifications: >> a list won't work to catch multiple exceptions. > > Esoteric - But I stand corrected... > > any other "must use a tuple's " ? > > Seems they all fall into a class that can be described as required by > the language - I was thinking data. > There used to be several other situations where a tuple was required but I can't think of any others which still exist.
So far as data is concerned, the same reason that exceptions require tuples could arise in your own code: If you look at the definition of the except clause expression (simplified to remove the deprecated string option): > An object is compatible with an exception if it is the class or a base > class of the exception object or a tuple containing an item compatible > with the exception you'll see that it is impossible for this structure to contain any loops. An equivalent structure using lists instead of tuples could contain loops and any code which searched it for a match would have to account for this somehow. So, anywhere you want a tree structure with a guarantee that it does not contain any loops it may be appropriate to use tuples to represent the structure. -- http://mail.python.org/mailman/listinfo/python-list