专业编程基础技术教程

网站首页 > 基础教程 正文

python经典案例:数组移位

ccvgpt 2024-08-07 19:00:47 基础教程 113 ℃

问题:有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数。

方法1:利用切片功能

python经典案例:数组移位

#!/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 np
array = 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]

Tags:

最近发表
标签列表