有没有更好的方法在python中创建字典键而不是转换为字符串?

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)

是否有更好的方法来创建一个键而不是像这样加入这些向量?

Mar*_*ers 8

字典键可以是任何可以清洗的 ; 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)

我在这里使用异常处理(请求原谅)而不是明确测试密钥是否存在(请求许可); 前者在缺少关键时更快是关键是常态.