Skip to main content
 首页 » 编程设计

python之有没有比转换为字符串更好的方法在 python 中创建字典键

2025年05月04日13tuyile006

我有一个函数可以返回与 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 是常态时,前者更快。