【发布时间】:2012-05-04 17:05:35
【问题描述】:
我有哪些选择?我需要调用很多appends(到右端)和poplefts(从左端,自然),还要从存储的中间读取,这自然会稳步增长的算法。我想在O(1) 中进行所有这些操作。
我可以在 C 语言中很容易地在循环寻址数组(单词是什么?)上实现它,它会在它满时自动增长;但是 Python 呢?指向其他语言的指针也很受欢迎(我意识到“集合”标签更面向 Java 等,并且希望进行比较,但作为次要目标)。
我来自 Lisp 背景,惊讶地发现在 Python 中从列表中删除 head 元素是 O(n) 操作。 deque 可能是一个答案,除非文档说访问是在中间的O(n)。还有什么预建的吗?
【问题讨论】:
-
一般来说,en.wikipedia.org/wiki/Hashed_array_tree 可能是相关的。
标签: python collections