Dictionary of Functions
Kevin Gullikson
kevin.gullikson at gmail.com
Thu Nov 15 11:04:01 EST 2012
Hi all,
I am trying to make a dictionary of functions, where each entry in the
dictionary is the same function with a few of the parameters set to
specific parameters. My actual use is pretty complicated, but I managed to
boil down the issue I am having to the following example:
In [1]: def test_fcn(a, x):
...: return a*x
...:
In [2]: fcn_dict = {}
In [3]: for i in [1,2,3]:
...: fcn_dict[i] = lambda x: test_fcn(i, x)
...:
In [4]: fcn_dict
Out[4]:
{1: <function <lambda> at 0x102b42c08>,
2: <function <lambda> at 0x102b42b18>,
3: <function <lambda> at 0x102b42c80>}
In [5]: fcn_dict[1](5)
Out[5]: 15
In [6]: fcn_dict[2](5)
Out[6]: 15
In [7]: fcn_dict[3](5)
Out[7]: 15
As you can see, all of the functions are returning the value that I want
for fcn_dict[3]. If I make separate functions for each case instead of a
dictionary it works, but I would really prefer to use dictionaries if
possible. Is there a way to make this work?
Thanks,
Kevin Gullikson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20121115/0f7a7b5a/attachment.html>
More information about the Python-list
mailing list