python如何交换列表中的一些数字

时间:2013-11-07 06:34:07

标签: python

例如,我有一个清单[8,9,27,4,5,28,15,13,​​11,12]

我想更改28之后的数字和27之前的数字之间的位置。 输出应为[15,13,​​11,12,27,4,5,28,8,9]。

我尝试更改它,使用a,b = b,a,但它不起作用,输出中总会丢失一些数字。

如果我只更改两个数字之间的位置,a,b = b,a正在工作,但如果我想更改两个或更多数字,则无效。

有人能给我一些提示吗?

2 个答案:

答案 0 :(得分:1)

x = [8,9,27,4,5,28,15,13,11,12]
y = x[6:] + x[2:6] + x[0:2]

>>> y
[15, 13, 11, 12, 27, 4, 5, 28, 8, 9]

答案 1 :(得分:0)

您可以使用切片:

lis = [8,9,27,4,5,28,15,13,11,12]
ind1 = lis.index(27)
ind2 = lis.index(28)
if ind1 < ind2:
    lis = lis[ind2+1:] + lis[ind1:ind2+1] + lis[:ind1]
else:
    #do something else
print lis
#[15, 13, 11, 12, 27, 4, 5, 28, 8, 9]