Приложение Python Deque со списком - PullRequest
2 голосов
/ 15 июля 2010

Я сейчас создаю свой deque объект, используя следующее,

self.CommandList = deque((['S', False, 60],['c'],['g16'],['i50'],['r30', True],['u320'],['o5000'],['b1'],['B4500'],['W1'],['l5154'],['!10'],['p2', True, 10],['e1'],['K20'],['U0'],['Y0']))

Но я хочу добавить аналогичный список в очередь позже, но с использованием appendleft, чтобы он мог опередить список. Я предположил следующее, но безуспешно.

NewList = (['S'],['c'],['!10'],['p4'],['o1200'],['i50'],['r30'],['b10'],['d1'],['A', True, 163])
self.CommandList.appendleft(NewList)

Возможно ли это даже с appendleft?

1 Ответ

12 голосов
/ 15 июля 2010

Я думаю, вы хотите .extendleft здесь.Это «расширит список» вместо простого добавления списка как одного элемента.

z = collections.deque([1,2,3,4])   # [1, 2, 3, 4]

z.appendleft(['bad', 'news'])   # [ ['bad', 'news'], 1, 2, 3, 4 ]
z.extendleft(['good', 'news'])  # [ 'good', 'news', ['bad', 'news'], 1, 2, 3, 4 ]

Если они вставляются в обратном порядке, быстрое решение состоит в том, чтобы просто перевернуть список:

z.extendleft(reversed(['good', 'news']))
...