【发布时间】:2015-12-13 09:39:32
【问题描述】:
我不确定是否可以提出问题,但无论如何要问,假设我有一些字典:
my_dict = {'a':0, 'b':1}
我想让一些键 'c' 等于(在这个简单的情况下)值 a+b,这样如果我要更新字典:
my_dict['a'] = 2
然后调用:
my_dict['c']
将返回 3 (a=2 + b=1)
我找不到任何简单的方法,也许是 lambda 函数,但这似乎不对。每当我想要 a 和 b 的总和时,这将很有用,我不必显式地将它们拉出并添加它们。
编辑:感谢您的快速响应,这将适用于一个类,如果我总是知道值 C 我想执行某些功能,但我希望能够动态定义该功能,让我们在 my_dict 中说我希望 'c' 是 a+b 但在其他一些 my_dict_2 我希望键 'b' 是 (key='a' * 52)/3 (或其他一些基本的数学运算。在下面的解决方案中,我会必须继续重写课程,我不想这样做。有什么想法吗?
【问题讨论】:
-
我添加了更多“通用”解决方案,希望您会喜欢。
-
请注意,Łukasz R.的最新解决方案非常灵活:您可以随时向现有实例添加新功能,并且与
defaults中的键关联的lambda功能可以访问dict 中的任何值,包括defaults中的普通值和特殊值,因此它可以变得任意复杂。
标签: python function dictionary