2013-04-06 58 views
3

在列表切換值我有一個數字,如列表:需要幫助,在巨蟒

[1, 2, 3, 4, 5, 6] 

我無法搞清楚如何切換與去年第2項的列表2,或前3個,後3個,依此類推。

當我將前兩個數字的值分配給列表的最後2個項目時,我不能將最後2個值(以前是列表的最後2個值)分配給前兩個因爲最後2個值已經丟失。

如果我嘗試使用其他空列表和追加原始列表的最後2個值到列表中,再追加中間值,然後第2個值舊列表的,我結束了這樣的事情:

[[[5, 6], [3, 4], [1, 2]]] 

我不想嵌套列表!我要的是:

[5, 6, 3, 4, 1, 2] 

有人能幫助我嗎?

+1

你幾乎沒有用第二種方法,除了你應該'extend'目標,而不是'append'它。 – georg 2013-04-06 11:34:58

回答

9
>>> nums = [1, 2, 3, 4, 5, 6] 
>>> nums[:2], nums[-2:] = nums[-2:], nums[:2] 
>>> nums 
[5, 6, 3, 4, 1, 2] 

這會修改原始列表,但如果你想有一個獨立的新名單,你應該使用下列內容:

>>> nums = [1, 2, 3, 4, 5, 6] 
>>> swapped_nums = nums[-2:] + nums[2:-2] + nums[:2] 
>>> swapped_nums 
[5, 6, 3, 4, 1, 2] 

注:如果你的列表中有< 4個元素這將無法正常工作