列表旋转是在 Python 中经常遇到的操作,它可以用于循环队列、字符串旋转等许多场景。本文将介绍几种常用的列表旋转方法,帮助开发者们优雅地处理各种列表旋转问题。
1、直接切片法
直接切片法是一种最简单的方法。它利用 Python 切片的特性直接对列表进行旋转,代码如下:
def rotate(nums, k):
k %= len(nums)
nums[:] = nums[-k:] + nums[:-k]
这个方法的思路是将列表分为两部分,左半部分和右半部分,然后交换两部分的位置。
2、额外数组法
额外数组法也是一种常见的方法,它利用一个额外的数组来存储旋转后的结果,代码如下:
def rotate(nums, k):
n = len(nums)
res = [0] * n
for i in range(n):
res[(i + k) % n] = nums[i]
nums[:] = res
这个方法的思路是新建一个数组,根据旋转后的位置将元素放到对应的位置上。
3、三次翻转法
三次翻转法是一种高效的方法,它只需要对列表进行三次翻转即可完成旋转操作,代码如下:
def rotate(nums, k):
n = len(nu