我正在尝试以给定的顺序创建两个子数组,在这种情况下,我有两个整数a和b a
代表子数组范围的值,b
代表需要多少次旋转。
我创建了这样的子数组;
def reorder(a,b):
return [[i for i in range(0, a//2)]] + [[f for f in range(a//2, a)]]
想象a
是10而b
是1,输出是:
[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]
但是我如何将每个子数组反转b
次?
我想要的输出;
[[4, 0, 1, 2, 3], [9, 5, 6, 7, 8]]
您可以弹出每个子数组的最后一个元素b次,并将其插入开头:
def reorder(a,b):
suba = [i for i in range(0, a//2)]
subb = [f for f in range(a//2, a)]
for i in range(b):
suba = [suba.pop(-1)]+suba
subb = [subb.pop(-1)]+subb
return [suba,subb]
reorder(10,1)
Out[1]: [[4, 0, 1, 2, 3], [9, 5, 6, 7, 8]]