6 votes

Python Deque appendleft avec liste

Je suis actuellement en train de créer mon deque en utilisant les éléments suivants,

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']))

Mais je souhaite ajouter plus tard une liste similaire à la file d'attente mais en utilisant appendleft afin qu'il puisse prendre de l'avance sur la liste. J'ai supposé ce qui suit, mais je n'ai pas eu de chance.

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

Est-ce même possible avec appendleft ?

17voto

Donald Miner Points 18116

Je pense que vous voulez .extendleft ici. Cela va "étendre la liste" au lieu de simplement l'ajouter comme un seul élément.

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 ]

S'ils sont insérés à l'envers, la solution rapide est d'inverser la liste :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X