拆分数组并将第一部分添加到末尾

时间:2021-06-17 15:23:49

标签: python arrays

我写了一个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])

我不知道我做错了什么。请帮帮我。

2 个答案:

答案 0 :(得分:1)

您可以像这样对列表进行切片:arr[start:stop:end]

Understanding slice notation

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])