设计一个函数fun的功能,有N*N矩阵,根据给定的m(m<N)值,将每行元素中的值均右移m个位置,左边设置为0
时间: 2024-09-10 15:26:22 浏览: 49
C语言程序设计-在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的积,并在fun() 函数中输出
5星 · 资源好评率100%
设计一个名为`rotate_matrix`的函数,可以实现这个功能。函数接受两个参数:一个二维数组`matrix`和一个整数`m`,`m`表示每个子数组需要向右移动的位置。函数内部会遍历矩阵,对于每一行,利用Python的切片操作来达到左移的效果。
```python
def rotate_matrix(matrix, m):
# 确保m不大于矩阵的列数
m = m % matrix[0].__len__()
# 遍历矩阵并调整每行
for i in range(len(matrix)):
# 使用切片将右边的元素移到前面,并插入0到指定位置
matrix[i] = matrix[i][-m:] + [0] * m + matrix[i][:-m]
return matrix
# 示例
# 假设矩阵是一个3x3的列表列表
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
m = 2
rotated_matrix = rotate_matrix(matrix, m)
print(rotated_matrix) # 输出: [[7, 8, 9], [4, 5, 6], [1, 2, 3]]
阅读全文