【问题标题】:Why does deque.extendleft() reverse the order of elements?为什么 deque.extendleft() 会颠倒元素的顺序?
【发布时间】:2014-10-18 09:03:16
【问题描述】:

来自官方文档:

向左扩展(可迭代)

   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 轻松更改它,但我只是好奇。

【问题讨论】:

    标签: python deque


    【解决方案1】:

    假设您正在使用[1, 2, 3, 4] 进行扩展。可迭代对象将被迭代,并且每个元素都将附加到左侧。所以,过程是这样的

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

    1
    

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

    2 -> 1
    

    读取第三个元素放在最左端

    3 -> 2 -> 1
    

    读取第四个元素放在最左端

    4 -> 3 -> 2 -> 1
    

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 2012-04-15
      • 2021-06-10
      • 1970-01-01
      相关资源
      最近更新 更多