2010-07-15 62 views
1

我使用以下目前正在創建我的deque對象,Python中的Deque appendleft與列表

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

回答

11

我想你想在這裏.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'])) 
+0

嗨。因爲我正在使用多個列表,他們實際上被反向添加!例如:self.CommandList.extendleft(['S'],['c'],['!10'],['p4'])以p4爲第一!我如何解決這個問題? – Schodemeiss 2010-07-15 14:23:46

+1

使用內置的反轉功能(我更新了我的答案) – 2010-07-15 14:26:36