2013-04-06 63 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个元素这将无法正常工作