列表旋转包括获取第一个元素并将其移到末尾。例如,如果旋转列表[1,2,3,4,5],则得到[2,3,4,5,1]。如果再次旋转它,则得到[3,4,5,1,2]。
编写一个Python函数rotatelist(l,k),它接受一个列表l和一个正整数k,并在旋转了k个之后返回列表l。如果k不为正,则函数应返回l不变。请注意,您的函数不应更改l本身,而应返回旋转后的列表。
这里有一些例子来说明您的功能应该如何工作。
>>> rotatelist([1,2,3,4,5],1)
[2, 3, 4, 5, 1]
>>> rotatelist([1,2,3,4,5],3)
[4, 5, 1, 2, 3]
>>> rotatelist([1,2,3,4,5],12)
[3, 4, 5, 1, 2]
我尝试解决它,但是期望的输出没有实现
这是我的代码,但是显示不同的输出
def rotatelist(l,k):
if(k>0):
o=-1
p=1
while(o<=k):
x=l.pop(p)
l.insert((p-1),x)
o+=1
else:
return(l)
return(l)
输入
list([1,2,3,4,5],1)
预期输出
[2, 3, 4, 5, 1]
实际输出
[2, 1, 3, 4, 5]
答案 0 :(得分:-1)
使用此代码:
def rotationlist(l,k): n = len(l) 如果k <0: 返回l d = l 而(k> 0) temp = d [0] 对于范围(n-1)中的i: d [i] = d [i + 1] d [i + 1] =温度 k = k-1 返回d