【问题标题】:Is there anything faster than a dictionary? [duplicate]有什么比字典更快的吗? [复制]
【发布时间】:2018-05-11 18:44:36
【问题描述】:

我正在学习 n-gram,并构建一个字典来保存 n-gram 值。我有这样的事情:

{
  "it is" : 0.01,
  "this is" : 0.005,
  "hello i" : 0.2
  "hello you" : 0.3
  ...
}

我的字典有大约 300 万个键,它需要0.0002(s) 才能得到一个二元值。

我可以使用比dict 更快的东西吗?

【问题讨论】:

  • 不,刚刚检查过:对于具有 1000 或 1000000 个随机键的 dict,查找速度一样快。此外,在这两种情况下,d[k] 的速度是d.get(k) 的两倍
  • 字典就像哈希表。搜索、插入和删除都是O(1)

标签: python dictionary n-gram


【解决方案1】:

不,我认为没有比dict 更快的了。其索引检查的时间复杂度为O(1)

-------------------------------------------------------
Operation    |  Average Case  | Amortized Worst Case  |
-------------------------------------------------------
Copy[2]      |    O(n)        |       O(n)            | 
Get Item     |    O(1)        |       O(n)            | 
Set Item[1]  |    O(1)        |       O(n)            | 
Delete Item  |    O(1)        |       O(n)            | 
Iteration[2] |    O(n)        |       O(n)            | 
-------------------------------------------------------

PShttps://wiki.python.org/moin/TimeComplexity

【讨论】:

    猜你喜欢
    • 2013-05-17
    • 2017-04-03
    • 2015-07-20
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 2013-12-02
    • 2011-01-14
    相关资源
    最近更新 更多