我有由数字键和值组成的数据。我需要将所有键和值增加N个数字。当我使用字典获取大量数据时,我的代码工作非常缓慢。存储此数据的最佳方法是什么?增加对值的最佳方法是什么?
示例:
N=2
{1:4,3:6,2:1}
预期结果:
{3:6,5:8,4:2}
谢谢
如果您想更改字典的全部数据,我们实际上无法更快地执行某些操作。即使有人运行for循环,我们也不确定O(N)的复杂性,因为内部可能会有重新哈希操作。
最好的是,您可以巧妙地使用内存中的一个额外变量进行更新。
最初喜欢
del = 0和d = {1:4,3:6,2:1}当您想将值和键增加N时更新del+=N
同时从字典中检索键值k使用d[k-del]+del
关于此问题,最好的解决方法是O(N)
,无论您使用哪种数据结构,都必须访问每个元素的值并对其进行递增。