如何执行列表的成对交换?

Sam*_*edi 2 python

我想用 python 编写一段小代码,交换列表中的元素,该程序将接受一个列表,并将返回一个交换每对相邻元素位置的列表:位置 0 和 1,位置 2 和 3,等等在。如果列表有奇数个元素,则最后位置的元素保留在 \xe2\x80\x9cin 位置\xe2\x80\x9d。

\n\n
Before: [1,2,3,4,5]\nAfter: [2,1,4,3,5]\n
Run Code Online (Sandbox Code Playgroud)\n\n

这看起来很不Python。Python 的方法是什么?

\n

Arp*_*ius 5

最Pythonic的方式:

def swappairwise(a):
  l = len(a)&~1
  a[1:l:2],a[:l:2] = a[:l:2],a[1:l:2]
Run Code Online (Sandbox Code Playgroud)