分裂阵列并将分裂的部分添加到结束



我想在点s处分割数组并将其添加到数组的末尾。但是我的输出是我的输入列表。

def split_and_add(arr, s):
n = len(arr)
if n >= s or s <=0:
return arr
else:
end = []
for i in range(0,s):
end = end + [arr[i]]
start = []
for i in range(s,n):
start = start + [arr[i]]
return start + end

print(split_and_add([1,2,3,4,5,6],3))

输出仍然是[1,2,3,4,5,6]。有人能帮忙吗?

代码中唯一的问题是

if n >= s or s <=0:

在这里,您正在检查数组n的长度是否大于断点s,如果是,则返回原始数组。但是你需要做的是检查s是否大于或等于数组的长度,如果是,返回原始数组。因此,您所需要做的就是将n >= s替换为s >= n。所以你的条件是

if s >= n or s <=0:
return arr

现在,这应该可以工作了。

您可以用一种简单的方法做到这一点。只需像这样将左半部分arr[:s]添加到右半部分arr[s:]

def split_and_add(arr, s):
n = len(arr)
if s >= n or s <=0:
return arr
return arr[s:] + arr[:s]

对于样例输入,它给出:

split_and_add([1,2,3,4,5,6],3)
# [4, 5, 6, 1, 2, 3] 

相关内容

  • 没有找到相关文章

最新更新