from collections import deque
from icecream import ic
a = deque()
ic(a)
a.extend([1, 2, 3, 4])
ic(a)
a.extendleft([-4, -3 ,-2, -1])
ic(a)
我们看一下结果

这里就有一个坑,他extend添加在尾端的顺序和我传入的顺序是相同的,但是我们extendleft在首段添加,可以看到实际顺序和我传入的顺序相反。
看了一下官网,好叭还真有说明:

看了一下stackoverflow上说的意思应该是每次取一个元素然后appendleft,但还是想自己去找一下看看。
尝试去找了一下他的实现过程
在__init__.py中,将deque注册成MutableSequence的子类

但是相关的几个文件中都没有extendleft函数的实现,最终只能这样吧。
如果有找到的,希望评论区分享一下
本文探讨了Python deque类的extendleft方法如何实现首部元素的反向添加,并揭示了其与extend方法的不同之处。作者在寻找源码过程中发现deque作为MutableSequence子类的实现细节,但未在标准库中找到extendleft的具体实现。
168

被折叠的 条评论
为什么被折叠?



