我需要访问Pythonlist
最左边的元素,同时从左边弹出元素。这种用法的一个例子是合并排序的合并操作。
有两个好方法。你知道吗
collections.deque
- 使用索引,在弹出时保持一个递增的整数。你知道吗
这两种方法在复杂性方面似乎都很有效(应该在程序开始时提到,我需要将列表转换为deque,这意味着额外的O(n))。你知道吗
那么在风格和速度方面,哪一个最适合Python的使用呢?我没有看到一个官方的建议或没有遇到类似的问题,这就是为什么我问这个问题。你知道吗
提前谢谢。你知道吗
相关:Time complexity
Tags:
当然
collections.deque
。首先,它已经写好了,这样你就不用写了。其次,它是用C语言编写的,因此可能比另一个Python重新实现要快得多。第三,使用索引会使列表的头未被使用,而queue
更聪明。附加到一个标准的列表仅仅是为了增加每个左pop的起始索引是非常低效的,因为您需要更频繁地重新分配列表。你知道吗相关问题 更多 >
编程相关推荐