【问题标题】:What is the difference between deque( [1,2,3] ) and deque.append( [1,2,3] )?deque( [1,2,3] ) 和 deque.append( [1,2,3] ) 有什么区别?
【发布时间】:2021-06-22 14:27:30
【问题描述】:

我注意到以下会引发一个可迭代的错误。

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()

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

提前感谢您的帮助。

【问题讨论】:

    标签: python queue deque


    【解决方案1】:

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

    【讨论】:

    • 首先,感谢您的评论。但是,既然我以相同的方式初始化队列,它们有何不同?
    • @TreyYi 当你写q = deque() 时,你写q = deque([]) 是一样的。你用一个空数组初始化它。当你打电话给q.append([1,2,3]) 时,如果你写q = deque([[1, 2, 3]]) 也是一样的。所以[1, 2, 3] 这里不是双端队列本身,而是双端队列的第一个元素。这就是区别
    猜你喜欢
    • 1970-01-01
    • 2018-06-24
    • 2010-09-05
    • 2014-07-14
    • 2014-07-13
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多