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]

有人能帮我吗?

4

1 回答 1

10
>>> 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 个元素,这将无法正常工作

于 2013-04-06T11:19:04.050 回答