I tried to work with a list of deques and was not able to to append a value to a single deque by indexing it. It looks like the following:
>>> 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])
So far so good. But when I try to append a value to a single deque it appends it to every deque:
>>> 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])]
I expected something like this:
[deque([0, 0, 1]),
deque([0, 0, 0]),
deque([0, 0, 0]),
deque([0, 0, 0]),
deque([0, 0, 0])]
Do you have an idea where I took the wrong turn? Thanks
Edit: Thanks guys, Changing it to
>>> 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)]
did the job. Ugly but effective.