【发布时间】:2011-05-08 13:40:07
【问题描述】:
我有一本字典 A,还有一个可能的条目 foo。我知道 A[foo] 应该等于 x,但我不知道 A[foo] 是否已经定义。在任何情况下,如果 A[foo] 已被定义,则意味着它已经具有正确的值。
执行速度更快:
if foo not in A.keys():
A[foo]=x
或者干脆更新
A[foo]=x
因为当计算机找到 foo 条目时,它也可以更新它。如果不是,我将不得不调用哈希表两次?
谢谢。
【问题讨论】:
-
你怎么会有这个问题?通常你会知道你之前设置了哪些键,或者只是一次构建最终的字典。
-
我正在计算代数中的所有元素(和关系)。我必须用我知道的来找出我不知道的。有些计算比较难,所以我把它们放在最后。希望在我去计算它们的时候,我可以免费使用其他的来推导它们。很快我就不再知道我已经发现了哪些关系以及我没有发现哪些关系。由于元素很多,关系也很多,所以我需要快速。
-
从问题的描述来看,字典存储似乎不会成为您程序中的主要瓶颈。只需编写您可以编写的最清晰的程序,如果它太慢,请对其进行分析并在需要的地方进行优化。根据我的经验,我几乎从不去分析和优化步骤。
-
当您使用
timeit时,您学到了什么?请发布结果。 -
@S.Lott 我刚刚使用
timeit发布了一个答案。
标签: python dictionary performance hashtable