deque( [1,2,3] ) 和 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,z = q.popleft()

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

提前感谢您的帮助。

解决方法

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...