我写了一个python程序来分割数组并将第一部分添加到最后,但程序抛出如下错误
Traceback (most recent call last):
File "<string>", line 13, in <module>
File "<string>", line 5, in splitArr
IndexError: list index out of range
代码如下
def splitArr(arr, n, k):
for i in range(0, k):
x = arr[0]
for j in range(0, n):
arr[j] = arr[j + 1]
arr[n-1] = x
arr = [12, 10, 5, 6, 52, 36]
n = len(arr)
position = 1
splitArr(arr, n, position)
for i in range(0, n):
print(arr[i])
我不知道我做错了什么。请帮帮我。
答案 0 :(得分:1)
您可以像这样对列表进行切片:arr[start:stop:end]
arr = [12, 10, 5, 6, 52, 36]
position = 1
new_arr = arr[position:]+arr[:position]
print(new_arr)
[10, 5, 6, 52, 36, 12]
答案 1 :(得分:1)
您面临的错误是由于列表索引超出范围。
我已在您的代码中将“j”for 循环中的范围从“for j in range(0, n)”修改为“for j in range(0, n-1)”,并且完全正常工作。< /p>
代码:
def splitArr(arr, n, k):
for i in range(0, k):
x = arr[0]
for j in range(0, n-1):
arr[j] = arr[j + 1]
arr[n-1] = x
arr = [12, 10, 5, 6, 52, 36]
n = len(arr)
position = 1
splitArr(arr, n, position)
for i in range(0, n):
print(arr[i])