列出列表中第一个元素的旋转,并使用python将其移至末尾

时间:2019-02-11 19:55:42

标签: python python-3.x

列表旋转包括获取第一个元素并将其移到末尾。例如,如果旋转列表[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]

1 个答案:

答案 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