在python中切换列表中的值时需要帮助

时间:2013-04-06 11:18:01

标签: python

我有一个数字列表,例如:

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

我无法弄清楚如何用最后2个切换列表的前2项,或者用最后3个切换前3个,依此类推。

当我将前两个数字的值分配给列表的最后两个项目时,我无法分配最后两个值(以前是列表的最后两个值)到前两个,因为最后两个值已经丢失。

如果我尝试使用其他空列表并将原始列表的最后2个值附加到该列表,然后附加中间值,然后旧列表的前2个值,我最终会得到这样的结果:

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

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

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

有人可以帮助我吗?

1 个答案:

答案 0 :(得分: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]

注意:如果您的列表中包含&​​lt; 这将无法正常工作4个元素