最佳答案
我发现,如果我在开始时初始化一个空字典,然后在 for 循环中向字典添加元素(大约110,000个键,每个键的值是一个列表,在循环中也在增加) ,随着 for 循环的进行,速度会下降。
我怀疑问题在于,字典不知道初始化时键的数量,并且它没有做一些非常聪明的事情,所以可能存储冲突变得非常频繁,并且速度变慢。
如果我知道密钥的数量,并且确切地知道这些密钥是什么,那么在 python 中有没有什么方法可以使得 dict (或者 hashtable)工作得更有效率呢?我隐约记得,如果你知道键,你可以聪明地设计散列函数(完美散列?)并预先分配空间。