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

And*_*sik 7 python deque

来自官方文档:

向左延伸(可迭代)

   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.
Run Code Online (Sandbox Code Playgroud)

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

the*_*eye 9

假设您正在扩展[1, 2, 3, 4]. 可迭代对象将被迭代,每个元素将被追加到左侧。所以,过程是这样的

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

1
Run Code Online (Sandbox Code Playgroud)

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

2 -> 1
Run Code Online (Sandbox Code Playgroud)

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

3 -> 2 -> 1
Run Code Online (Sandbox Code Playgroud)

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

4 -> 3 -> 2 -> 1
Run Code Online (Sandbox Code Playgroud)

看,元素的顺序颠倒了。事实上,这对我来说似乎是合乎逻辑的。当我们这样做时list.extend,像这样

[].extend([1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)

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