来自官方文件:
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
轻松更改它,但我只是好奇。
答案 0 :(得分:3)
让我们说你正在延伸[1, 2, 3, 4]
。迭代将被迭代,每个元素将被附加到左侧。所以,这个过程就像这样
阅读第一个元素并将其放在左端
1
阅读第二个元素并将其放在左端
2 -> 1
阅读第三个元素并将其放在左端
3 -> 2 -> 1
阅读第四个元素并将其放在左端
4 -> 3 -> 2 -> 1
请参阅,元素的顺序相反。实际上,这对我来说似乎是合乎逻辑的。当我们list.extend
时,就像这样
[].extend([1, 2, 3, 4])
迭代迭代并添加到列表的右端。因此,该模式也遵循extendleft
。