我有一个函数可以返回与 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 是常态时,前者更快。
关于python - 有没有比转换为字符串更好的方法在 python 中创建字典键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24362724/