expanding a list and dict to a *args and **dict
Michael Hudson
mwh21 at cam.ac.uk
Fri Feb 2 12:21:55 EST 2001
Dan Parisien <dan at eevolved.com> writes:
> Is it possible to 'expand' a list or dictionary into its components to call
> a function expecting many parameters?
>
> I want to be able to call a function without accessing each individual
> element manually (list[0], list[1], list[2])
>
> I'm sending random parameters over a network (*args and **dict). When I
> unpickle them on the other side, I get a python list and dictionary. I then
> call an arbitrary function (actually a reference to a function that was
> bound at runtime a la
> self.randomfunction = obj.specificfunction
> )
>
> That function is not expecting a list and a dictionary, instead it is
> expecting specific parameters(that i don't know at runtime) and I want to
> take the list and turn it into a bunch of parameters like list[0], list[1],
> list[2] (but as stated above, I can't do that)
>
> Ha. I hope someone understood me :)
Only a bit, but do you know about apply (a builtin function) and/or
this sort of thing:
>>> def f(a,b,c):
... print a,b,c
...
>>> f(*(1,2),**{'c':3})
1 2 3
I *think* that's what your asking for...
Cheers,
M.
--
I have gathered a posie of other men's flowers, and nothing but the
thread that binds them is my own. -- Montaigne
More information about the Python-list
mailing list