问题描述
我注意到以下会导致一个可迭代的错误。
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
。