为什么deque.extendleft()会颠倒元素的顺序?

时间:2014-10-18 09:03:16

标签: python deque

来自官方文件:

  

extendleft(迭代)   

   Extend the left side of the deque by appending elements from iterable. Note, the 
   series of left appends results in reversing the order of elements in the iterable argument.

此方法行为背后的原因/概念是什么?我知道我可以使用reversed轻松更改它,但我只是好奇。

1 个答案:

答案 0 :(得分:3)

让我们说你正在延伸[1, 2, 3, 4]。迭代将被迭代,每个元素将被附加到左侧。所以,这个过程就像这样

阅读第一个元素并将其放在左端

1

阅读第二个元素并将其放在左端

2 -> 1

阅读第三个元素并将其放在左端

3 -> 2 -> 1

阅读第四个元素并将其放在左端

4 -> 3 -> 2 -> 1

请参阅,元素的顺序相反。实际上,这对我来说似乎是合乎逻辑的。当我们list.extend时,就像这样

[].extend([1, 2, 3, 4])

迭代迭代并添加到列表的右端。因此,该模式也遵循extendleft