在python中移动列表的最有效方法是什么?现在我有这样的事情:
>>> def rotate(l, n):
... return l[n:] + l[:n]
...
>>> l = [1,2,3,4]
>>> rotate(l,1)
[2, 3, 4, 1]
>>> rotate(l,2)
[3, 4, 1, 2]
>>> rotate(l,0)
[1, 2, 3, 4]
>>> rotate(l,-1)
[4, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
是否有语法来获取不在给定切片内的列表元素?鉴于切片 [1:4] 很容易获得这些元素:
>>> l = [1,2,3,4,5]
>>> l[1:4]
[2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
如果我想要列表的其余部分,我可以这样做:
>>> l[:1] + l[4:]
[1, 5]
Run Code Online (Sandbox Code Playgroud)
有没有更简洁的方法来做到这一点?我意识到我可能太需要了,因为这已经非常简洁了。
编辑:我不认为这是python中Invert slice的重复,因为我不想修改我的原始列表。