unpacking with default values
Gary Herron
gherron at islandtraining.com
Thu Jul 17 12:33:32 EDT 2008
McA wrote:
> Hi all,
>
> probably a dumb question, but I didn't find something elegant for my
> problem so far.
> In perl you can unpack the element of a list to variables similar as
> in python
> (a, b, c = [0, 1, 2]), but the number of variables need not to fit the
> number
> of list elements.
> That means, if you have less list elements variables are filled with
> 'undef' (None in python), if you have more list elements as necessary
> the rest is ignored.
>
> How can I achieve this behaviour with python in an elegant and fast
> way?
>
> Best regards
> Andreas Mock
> --
> http://mail.python.org/mailman/listinfo/python-list
>
Python 3.0 has something a bit like this. Excess values can be bound
(as a list) to the last variable:
a,b,*c = [1,2,3,4,5]
will result in c containing [3,4,5].
In Python 2.x, you can't do that directly, but you should be able to
create a function that lengthens or shortens an input tuple of arguments
to the correct length so you can do:
a,c,b = fix(1,2)
d,e,f = fix(1,2,3,4)
However, the function won't know the length of the left hand side
sequence, so it will have to be passed in as an extra parameter or hard
coded.
Gary Herron
More information about the Python-list
mailing list