deque( [1,2,3] ) 和 deque.append( [1,2,3] ) 有什么区别?

What is the difference between deque( [1,2,3] ) and deque.append( [1,2,3] )?

我注意到以下会导致可迭代的错误。

q = deque([1,2,3])
x, y, z = q.popleft()
# TypeError: 'int' object is not iterable

但是下面的代码有效,我认为是相同的操作:

q = deque()
deque.append([1,2,3])
x, y, z = q.popleft()

以上两种方式有什么区别?

提前感谢您的帮助。

q.popleft() returns 双端队列的第一个元素。在第一种情况下它是 int 而在第二种情况下它是一个整数列表。你应该在第一种情况下写:x, y, z = q.