[Python-Dev] Extending tuple unpacking
Guido van Rossum
guido at python.org
Fri Oct 7 19:34:05 CEST 2005
On 10/7/05, Gustavo Niemeyer <gustavo at niemeyer.net> wrote:
> Not sure if this has been proposed before, but one thing
> I occasionally miss regarding tuple unpack is being able
> to do:
>
> first, second, *rest = something
>
> Also in for loops:
>
> for first, second, *rest in iterator:
> pass
>
> This seems to match the current meaning for starred
> variables in other contexts.
Someone should really write up a PEP -- this was just discussed a week
or two ago.
I personally think this is adequately handled by writing:
(first, second), rest = something[:2], something[2:]
I believe that this wish is an example of "hypergeneralization" -- an
incorrect generalization based on a misunderstanding of the underlying
principle.
Argument lists are not tuples [*] and features of argument lists
should not be confused with features of tuple unpackings.
[*] Proof: f(1) is equivalent to f(1,) even though (1) is an int but
(1,) is a tuple.
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev
mailing list