Reputation: 2441
I have a parameter p
and a dictionary val_dict
:
p = 0
val_dict = {
'p' : p/15
}
Is there a way for the dictionary to be automatically updated when I'm increasing p
?
print(val_dict['p'])
p+=1
print(p)
print(val_dict['p'])
>>>0.0
1
0.0
Update 1:
Following the comments I made a function in the dictionary:
p = 0
def equation_calc(param):
return (param/15)
val_dict = {
'p' : equation_calc(p)
}
Though, it seems like it's still immutable:
print(val_dict['p'])
p+=1
print('p: ', p)
print(val_dict['p'])
>>>0.0
p: 1
0.0
Upvotes: 0
Views: 63
Reputation: 9797
In the line 'p' : equation_calc(p)
you store the result of the function to the key 'p'
. But this result is still an immutable object. What you want instead is to store the reference to the function itself, which you can then call later with your arguments.
val_dict = {
'p' : equation_calc
}
for p in [0, 1]:
print(val_dict['p'](p))
If you function is of the form def function(args): return value
, and the value expression is short, you can also use a lambda expression, like this
val_dict = {
'p' : lambda p: p / 15
}
Upvotes: 1