如何在Python中移动列表的一部分



我有一个函数

def rotate(a, n, k):
pass

我需要得到列表a,选择第一个n项目并将它们的k位置向左或向右移动(正向左,负向左)。

例如:

rotate([1,2,3,4,5,6,7,8,9], 3, 2) 
=> [4,5,1,2,3,6,7,8,9]

我试着

def rotate(a, n, k):
movable = a[:n]
const = a[:n]
for item in movable:
const[k] = item

但是它不能正常工作。

你可以直接使用列表连接:

l=[1,2,3,4,5,6,7,8,9]
n=3
k=2
rotated = l[:n] + l[n:n+k] + l[n+k:]

结果rotated=[4,5,1,2,3,6,7,8,9]

最新更新