有没有基准测试显示`collections.deque`的良好性能?
我一直对Python里的collections.deque
这个对象很感兴趣。它看起来像一个列表,但在开头添加或删除项目的速度比列表要快。
这让我想在我的代码中,把那些需要从左边弹出元素的列表换成deque
。所以我想问:有没有人对在这种情况下deque
和list
的性能做过比较?
1 个回答
3
我刚刚做了个快速的谷歌搜索,找到了两个有代码和数据的来源:
一个邮件列表的帖子:
http://coding.derkeiler.com/Archive/Python/comp.lang.python/2010-01/msg02138.html
一个博客帖子:
http://txzone.net/2010/04/python-is-x-is-better-than-y-round-1-deque-vs-list/
看起来在大多数操作中,列表的速度稍微快一点,但在执行.pop[0]这个操作时,双端队列(deque)比列表快得多(对于一个有100,000个元素的列表,速度差距达到100倍)。