Python 列表轮换

标签 python list rotation

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/

相关文章:

android - 尝试旋转图像时 : Cannot resolve method mtx. postRotate(int)

java - 在android中绕两点旋转不起作用

python - 如何在 Python 中查找两个目录?

python - 如何根据 pandas 中的其他列可视化记录数

Python - 无法解析utf8 csv

python - 在python中获取一组二维列表

java - 在Java中插入一个值之前如何检查它是否已经存在于数组列表中?

python - 将一个列表中的当前元素与另一个列表中的下一个元素进行比较

java - 如何将 JNI C 中的 std::list<std::string> 发送到 Android

javascript - JQuery 旋转列表