方法1:利用切片功能
#!/usr/bin/python#coding:utf-8#author:菜就多练呀def shift_numbers(arr, m): if len(arr) < m: raise ValueError("m 值大于数组长度") return arr[-m:] + arr[:-m]# 示例n = 5#数组个数m = 3#移动个数original_arr = [1, 2, 3, 4, 5]new_arr = shift_numbers(original_arr, m)print(f"原始数组:{original_arr}")print(f"移位后的数组:{new_arr}")
方法2:利用numpy库的roll方法
#!/usr/bin/python#coding:utf-8#author:菜就多练呀import numpy as nparray = np.array([1, 2, 3, 4, 5])shifted_array = np.roll(array, 3)print(f"原始数组:{array}")print(f"移位后的数组:{shifted_array}")
注:roll()函数可以沿指定轴滚动数组元素。它接管一个数组和移位数(正值表示向右移,负值表示向左移),然后返回移位后的数组。

输出结果:
原始数组:[1, 2, 3, 4, 5]移位后的数组:[3, 4, 5, 1, 2]