Dear list,
I have many dictionaries with the same set of keys and I would like to write a function to calculate something based on these values. For example, I have
a = {'x':1, 'y':2} b = {'x':3, 'y':3}
def fun(dict): dict['z'] = dict['x'] + dict['y']
fun(a) and fun(b) will set z in each dictionary as the sum of x and y.
My function and dictionaries are a lot more complicated than these so I would like to set dict as the default namespace of fun. Is this possible? The ideal code would be:
def fun(dict): # set dict as local namespace # locals() = dict? z = x + y
You can part way there using keyword arguments. You just have to use dictionary syntax for changing values in the dictionary:
>>> def f(d, x=None, y=None):
... d['z'] = x + y
...
>>> a = {'x':1, 'y':2}
>>> b = {'x':3, 'y':3}
>>>
>>> f(a, **a)
>>> a
{'y': 2, 'x': 1, 'z': 3}
>>> f(b, **b)
>>> b
{'y': 3, 'x': 3, 'z': 6}Kent -- http://mail.python.org/mailman/listinfo/python-list
