我有一个函数可以返回与 3D 空间中的向量 F(i,j,k) 相关联的能量。
F() 是一个慢函数,所以我有一个字典来检查 F() 是否已为特定的 i、j、k 调用,如果已调用,我就从字典中获取该值。
我目前正在这样做:
key = "_".join( [ str(i), str(j), str(k) ])
if key not in dic:
dic[key] = F(i,j,k)
Energy = dic[key]
有没有比像这样连接向量更好的方法来创建 key ?
请您参考如下方法:
字典键可以是任何东西hashable ; 3 个值的元组就可以了:
key = i, j, k # a comma makes this a tuple
try:
Energy = dic[key]
except KeyError:
Energy = dic[key] = F(i, j, k)
我在这里使用异常处理(请求原谅)而不是显式测试 key 是否存在(请求许可);当缺少 key 是常态时,前者更快。
