【问题标题】:Python: what is the best way to store numerical key value pairs? [closed]Python:存储数字键值对的最佳方式是什么? [关闭]
【发布时间】:2020-02-03 01:21:41
【问题描述】:

我有由数字键和值组成的数据。 我需要将所有键和值增加 N 个。 当我使用字典来处理大量数据时,我的代码运行速度很慢。 存储这些数据的最佳方式以及增加对值的最佳方式是什么?

例子:

N=2
{1:4,3:6,2:1}

预期结果:

{3:6,5:8,4:2}

谢谢

【问题讨论】:

  • 请分享一个例子和预期的输出
  • 您的问题很广泛,数据结构(如果存在)将取决于您的用例。例如,您是否打算按键访问数据结构?在您的特定情况下,pandas.Series 似乎合适。
  • 感谢您的回答。我需要性能最好的方法。
  • @AvoAsatryan 他们在上面告诉你的是“最佳性能”取决于您需要从存储中获得的一组操作。哪些操作会更频繁、多次执行?

标签: python algorithm python-2.7 hash hashmap


【解决方案1】:

如果您想更改字典的整个数据,我们实际上无法更快地执行某些操作。即使有人运行 for 循环,我们也不确定 O(N) 复杂度,因为内部可能存在重新散列操作。

最好的办法是您可以巧妙地使用内存中的一个额外变量进行更新。

一开始就喜欢

del=0 和 d={1:4,3:6,2:1}
当您想将值和键增加 N
更新del+=N

从字典中检索键值 k
使用d[k-del]+del

【讨论】:

    【解决方案2】:

    您能做的最好的事情是O(N),无论您使用哪种数据结构,您都必须访问每个元素的值并递增它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-03
      • 2021-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 2021-12-05
      • 1970-01-01
      相关资源
      最近更新 更多