On Fri, Feb 28, 2014 at 9:45 PM, Mark H. Harris <harrismh...@gmail.com> wrote:
> I really believe IMHO that the error should have come when you made the list 
> an item of a tuple.  An immutable object should have NO REASON to contain a 
> mutable  object like list... I mean the whole point is to eliminate the 
> overhead of a list ... why would the python interpreter allow you to place a 
> mutable object within an immutable list in the first place.   This is just 
> philosophical, and yes, the core dev's are not going to agree with me on this 
> either.

One very common example of tuples containing lists is when lists are
passed to any function that accepts *args, because the extra arguments
are passed in a tuple.  A similarly common example is when returning
multiple objects from a function, and one of them happens to be a
list, because again they are returned in a tuple.

    def f(*args):
        print(args)
        return (args[1:])

    >>> result = f(1, 2, 3, [4, 5])
    (1, 2, 3, [4, 5])
    >>> print(result)
    (2, 3, [4, 5])

Both of these things are quite handy, and if you restrict tuples from
containing lists, then you lose both of them (or you switch to lists
and lose the optimization for no good reason).
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to