我想做这样的事情:
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中实现这一目标的最有时间和空间效率的方法是什么?
编辑:没有旋转!
答案 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]