问题描述
我正在运行的代码使用16个进程来构建16个字典,这些字典的长度约为62,500(总计约1,000,000)。每个过程完成后,我将像这样更新一个字典:
main_dict.update(sub_dict)
我发现我的代码似乎在整个脚本的结尾处挂了很多(大约在我希望某些进程开始返回其sub_dict
的时候)。所以我怀疑字典有更新。
假定更新需要将sub_dict
的每个密钥与main_dict
的密钥进行比较,所以在我的示例中,这可能意味着最多62500 * 937500个对最后一次更新的检查,对吗?
我在这里正确吗?如果是这样,是否有办法加快速度?我知道键将是唯一的,sub_dict
之间永远不会有重叠,所以也许有帮助。
解决方法
here中记录了python中的时间复杂度。
@MicahSmith已经回答(在评论中),更新字典的复杂度平均为O(1),Amortized Worst Case为O(n)。这是因为迭代了dict键和值。