首页 > 解决方案 > 在列表中索引 Python 双端队列

问题描述

我尝试使用双端队列列表,但无法通过索引将值附加到单个双端队列。它如下所示:

>>> l_deque = [deque([0] * 3, maxlen = 3)] * 5
>>> l_deque
[deque([0, 0, 0]),
 deque([0, 0, 0]),
 deque([0, 0, 0]),
 deque([0, 0, 0]),
 deque([0, 0, 0])]

>>> l_deque[0]
deque([0, 0, 0])

到目前为止,一切都很好。但是,当我尝试将值附加到单个双端队列时,它会将其附加到每个双端队列:

>>> l_deque[0].append(1)
>>> l_deque
[deque([0, 0, 1]),
 deque([0, 0, 1]),
 deque([0, 0, 1]),
 deque([0, 0, 1]),
 deque([0, 0, 1])]

我期待这样的事情:

[deque([0, 0, 1]),
 deque([0, 0, 0]),
 deque([0, 0, 0]),
 deque([0, 0, 0]),
 deque([0, 0, 0])]

你知道我在哪里走错了吗?谢谢

编辑:谢谢大家,将其更改为

    >>> l = [deque([0] * 3, maxlen = 3), 
            deque([0] * 3, maxlen = 3), 
            deque([0] * 3, maxlen = 3), 
            deque([0] * 3, maxlen = 3), 
            deque([0] * 3, maxlen = 3)]

做了这项工作。丑陋但有效。

标签: pythonlistdeque

解决方案


推荐阅读