例如,我有一个列表[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 是有效的,但如果我想改变两个或更多数字,它就不起作用。
有人可以给我一些提示吗?
例如,我有一个列表[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 是有效的,但如果我想改变两个或更多数字,它就不起作用。
有人可以给我一些提示吗?
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]
您可以使用切片:
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]