我无法在数组旋转的末尾插入temp元素

问题描述

def temprotate(arr,d,n):
    temp = []
    for i in range(d):
        temp.append(arr[i])

    # Function to shift arr by 2
    for i in range(n - d):
        arr[i] = arr[i + d]

    # Function to reinsert temp elements
    for i in range(d):
        a = temp[i]
        for i in range(1,d + 1):
            arr.insert(arr[n - i],a)


def printarr(arr,size):
    for i in range(size):
        print(arr[i],end=' ')


arr = [1,2,3,4,5,6,7]
temprotate(arr,7)
printarr(arr,7)

结果= 3 2 4 5 6 7 6

我不知道插入代码部分有什么问题!

当我希望插入函数将列表中的元素替换为临时中的其他元素时,insert函数似乎想向列表中添加元素。

解决方法

目前尚不清楚您想做什么,但

# Function to reinsert temp elements,AT THE END
    for i in range(d):
        a = temp[i]
        arr[(n-d)+i] = a

# Function to reinsert temp elements,IN SAME PLACE
    for i in range(d):
        a = temp[i]
        arr.insert(i,a)