ego*_*ell 1 python dictionary key
我有一个函数返回与3D空间中的向量相关的能量F(i,j,k).
F()是一个慢函数,所以我有一个字典,检查是否已经为特定的i,j,k调用了F(),如果有,那么我只是从字典中取出该值.
我目前这样做:
key = "_".join( [ str(i), str(j), str(k) ])
if key not in dic:
dic[key] = F(i,j,k)
Energy = dic[key]
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法来创建一个键而不是像这样加入这些向量?
字典键可以是任何可以清洗的 ; 3个值的元组很好:
key = i, j, k # a comma makes this a tuple
try:
Energy = dic[key]
except KeyError:
Energy = dic[key] = F(i, j, k)
Run Code Online (Sandbox Code Playgroud)
我在这里使用异常处理(请求原谅)而不是明确测试密钥是否存在(请求许可); 前者在缺少关键时更快是关键是常态.