【发布时间】:2011-07-13 18:11:38
【问题描述】:
由this 问题的 cmets 提出(我可以看到这无关紧要),我现在意识到使用字典来获取需要定期查询/访问的数据并不好,速度很快。
我有这样的情况:
someDict = {}
someDict[(-2, -2)] = something
somedict[(3, -10)] = something else
我将坐标键存储到在游戏中充当图块数组的对象。这些在某些时候会是负面的,所以我不能使用列表或某种稀疏数组(我认为这是术语?)。
我可以:
- 加快字典查找速度,因此这不是问题
- 找到某种支持稀疏负索引的容器?
我会使用一个列表,但是查询会从 O(log n) 到 O(n) 以找到 (x, y) 处的区域。 (我想我的时间也在这里)。
【问题讨论】:
-
dicts 对键的元组中的负键或负数没有问题。您担心哪种访问模式性能不佳? -
这不是我担心的负键问题;上一个问题告诉我‘一般字典没有为此优化;如果你需要效率,你应该重组你的数据,这样你就不需要这样做了。 '
-
我认为您的问题与您链接指向的问题无关,除非您想访问例如第一个索引元素是某个值的所有项目。 “对需要定期查询/访问的数据使用字典不好”在一般情况下肯定是不正确的;事实上,字典访问通常在时间上是恒定的。
-
"this" 在该评论中的意思是“检查索引元组的 part”,而不是“使用元组作为键”。对于二维格的表示,您通常可以使用“密集”数组(如果格不是太大)或字典。
-
我现在可以看出它是多么无关紧要了,谢谢。但是,如果我的原始帖子陷入某种混乱,我就无法真正编辑它。我将离开它;我希望我最初的想法会得到体现。
标签: python optimization dictionary indices