Possible Duplicate:
Efficient way to shift a list in python
我想将 Python 列表向右或向左旋转任意数量的项目(后者使用负参数)。
类似这样的:
>>> l = [1,2,3,4]
>>> l.rotate(0)
[1,2,3,4]
>>> l.rotate(1)
[4,1,2,3]
>>> l.rotate(-1)
[2,3,4,1]
>>> l.rotate(4)
[1,2,3,4]
如何做到这一点?
最佳答案
def rotate(l, n):
return l[-n:] + l[:-n]
更常规的方向:
def rotate(l, n):
return l[n:] + l[:n]
例子:
example_list = [1, 2, 3, 4, 5]
rotate(example_list, 2)
# [3, 4, 5, 1, 2]
rotate
的参数是一个列表和一个表示移位的整数。该函数使用 slicing 创建两个新列表并返回这些列表的串联。 rotate
函数不会修改输入列表。
关于Python 列表轮换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9457832/