如何表示"范围"在python dict中

时间:2016-09-05 04:20:41

标签: python

我想创建这样的字典:

1,2 = "A"

3,4 = "B"

5,6,7・・・(>=5) = "C"

所以我在下面试过,但效果不好......

dict = {1:"A", 2:"A", 3:"B", 4:"B", >=5:"C"}

我该如何创建这样的字典?

1 个答案:

答案 0 :(得分:1)

查找键位于排序范围内的值的上限为O(log n)。因此直接使用字典是不可行的。您可以通过以下方式执行此操作:

  • 将范围存储在列表中,对它们进行排序,然后进行二分查找,或者......
  • 使用树数据结构。

还有其他创造性的解决方案,例如将字典范围内的所有数字存储为整数键,并且具有对相同值的重复引用(看起来与上面的内容相似)。这将是O(1)查找,但会产生负面影响,例如:

  • 无法在不更新所有密钥的情况下轻松修改范围
  • 浪费大范围的空间
  • 无法使用浮点数进行查找

......根据您的使用情况,这可能没问题。

总之,没有直接的解决方案。