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