2016-12-06 30 views
2

短缺問題有關移動列表的最後一個項目一個嵌套列表兩名內線向左,例如:列表中有兩個最後一節向左移動

list = [['Swimming', 'Jason', 'jsmg1', '2', '1352452'], 
     ['Football', 'Chris', 'cfb1', '1', '1352527'], 
     ['Tennis', 'J', 'Paul', 'pten1', '2', '1132624']] 

list = [['Swimming', 'Jason', '1352452', 'jsmg1, '2'], 
     ['Football', 'Chris', '1352527', 'cfb1', '1'], 
     ['Tennis', 'J', 'Paul', '1132624', 'pten1', '2']] 

如何這樣做? 謝謝

回答

3

使用切片分配。

l = [['Swimming', 'Jason', 'jsmg1', '2', '1352452'], 
     ['Football', 'Chris', 'cfb1', '1', '1352527'], 
     ['Tennis', 'J', 'Paul', 'pten1', '2', '1132624']] 

for row in l: 
    row[2:] = row[4], row[2], row[3] 

結果:

>>> import pprint 
>>> pprint.pprint(l) 
[['Swimming', 'Jason', '1352452', 'jsmg1', '2'], 
['Football', 'Chris', '1352527', 'cfb1', '1'], 
['Tennis', 'J', '2', 'Paul', 'pten1']] 
+0

謝謝你的快速性反應 –

+1

或爲最後一個元素移動任意長度> = 3所列的兩到左側沒有假設它正是五行每個'行[ -3:] =行[-1],行[-3],行[-2]'(可能值得做'swapper = operator.itemgetter(-1,-3,-2)',這樣你就可以做'row [-3:] = swapper(row)')。 – ShadowRanger

相關問題