一、先写个列表长度必须是偶数才行的
# 列表长度为偶数
s = [1, 2, 3, 4, 5, 6]
s1 = [s[i + (-1) ** i] for i in range(len(s))]
print(s1)
运行结果: [2, 1, 4, 3, 6, 5]
如果列表长度为奇数,如
s = [1, 2, 3, 4, 5, 6,7]
则会报错: IndexError: list index out of range
二、以下是不受列表长度奇偶限制的方法
s = [1, 2, 3, 4, 5, 6, 7] # 长度为奇数
ss = [1, 2, 3, 4, 5, 6, 7, 8] # 长度为偶数
def swap_odd_even(s:list):
for i in range(len(s)):
if i % 2 != 0:
s.insert(i - 1, s.pop(i))
return s
print(swap_odd_even(s))
运行结果:[2, 1, 4, 3, 6, 5, 7]
print(swap_odd_even(ss))
运行结果:[2, 1, 4, 3, 6, 5, 8,7]
此方法是根据列表的索引值来作用的,pop()方法会删除该索引位置的值并且将该值返回,然后再使用insert()方法将索引位置往前移一位后把pop方法返回的值插入。
本文到此结束。