在python中交换列表的一部分

时间:2015-01-10 13:44:28

标签: python list inline swap

假设我有,

a = [1,2,3,4,5]

我想用[ - 2:]交换列表拼接[:2]。所以a变为[4,5,3,1,2]

有没有pythonic的方法来做到这一点?

EDIT1:第一个回答后,我尝试了这个,

>>> a = [1,2,3,4,5]
>>> a[:2],a[-2:]=a[-2:][:2]

Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
TypeError: can only assign an iterable

有一个例外,我得到了。

1 个答案:

答案 0 :(得分:5)

使用带有元组解包的切片赋值:

>>> a = [1,2,3,4,5]
>>> a[:2], a[-2:] = a[-2:], a[:2]
>>> a
[4, 5, 3, 1, 2]