在列表中移动特定范围的元素

时间:2014-03-24 12:53:11

标签: python data-structures

我想做这样的事情:

myList[n]. Shift myList[k:l] to the left by s.

示例:设n为5,s = 1,k和l为列表中的第3和第4个元素。

在:

[a,a,b,b,a]

后:

[a,b,b,a,a]

要明确:我不想放松' b'我列表中的项目,' a'可以被覆盖。

在Python中实现这一目标的最有时间和空间效率的方法是什么?

编辑:没有旋转!

1 个答案:

答案 0 :(得分:2)

使用列表切片:

>>> lst = [1, 2, 3, 4, 5]
>>> s, k, l = 1, 2, 4 # 4 = 3 + 1
>>> x = lst[k:l]
>>> del lst[k:l]
>>> lst[k-s:k-s] = x
>>> lst
[1, 3, 4, 2, 5]