我试图移动数组的元素,所以所有元素都替换为前一个元素,如下所示:shift(1,[5,6,7])=> [7,5,6].
以下代码仅返回[7,5].有人可以告诉我是什么导致这种情况发生?我一步一步地完成了代码,根本无法找到解决方案.我还尝试了3种不同的口译员.
def shift(key, array):
counter = range(len(array)-1)
new = counter
for i in counter:
new[i] = array[i-key]
return new
print shift(1, [5, 6, 7])
Run Code Online (Sandbox Code Playgroud)
Ble*_*der 11
range(5)回报[0, 1, 2, 3, 4].它不包括在内5.
只是删除-1从range(len(array)-1)它应该工作.
您还可以使用列表切片:
def shift(key, array):
return array[-key:] + array[:-key]
Run Code Online (Sandbox Code Playgroud)
这是python的方式:
def shift(key, array):
return array[-key:]+array[:-key]
Run Code Online (Sandbox Code Playgroud)