Python程序:交换矩阵中第一列和最后一列的元素

Python程序:交换矩阵中第一列和最后一列的元素

需求分析

我们需要编写一个Python程序,将给定的矩阵中第一列和最后一列的元素进行交换。具体实现流程包括以下几个步骤:

  1. 输入一个矩阵,并将其存储为一个二维数组;
  2. 编写函数,将矩阵的第一列和最后一列进行交换
  3. 输出交换后的矩阵

代码实现

输入矩阵

首先我们需要编写函数input_matrix(),用于输入矩阵并将其存储为一个二维数组。

import re


def input_matrix():
    '''输入矩阵并返回二维数组'''
    while True:
        matrix_string = input("请输入矩阵,矩阵元素之间用空格隔开,行与行之间用回车隔开:\n")
        # 使用正则表达式去掉多余的空格和换行符
        matrix_string = re.sub('[\n\r\s]+', ' ', matrix_string).strip()
        # 将字符串转化为二维数组
        rows = matrix_string.split(' ')
        try:
            matrix = [list(map(int, rows[i:i+len(rows)//len(rows[0])])) for i in range(0, len(rows), len(rows)//len(rows[0]))]
            return matrix
        except ValueError:
            print("输入的矩阵不合法,请重新输入。")

通过输入一个矩阵的字符串形式,我们使用正则表达式去掉多余的空格和换行符,并将其转换为一个二维数组。在输入时,如果输入的矩阵不合法,则会提示输入错误并要求重新输入。

交换矩阵的第一列和最后一列

为了交换矩阵的第一列和最后一列,我们可以先将矩阵每一行的第一列元素与最后一列元素交换位置,再将所有行的第一列和最后一列交换位置。

def swap_columns(matrix):
    '''交换矩阵中第一列和最后一列的元素'''
    # 将每一行的第一列和最后一列进行交换
    for i in range(len(matrix)):
        matrix[i][0], matrix[i][-1] = matrix[i][-1], matrix[i][0]
    # 将矩阵第一列和最后一列进行交换
    for i in range(len(matrix)):
        matrix[i][0], matrix[i][-1] = matrix[i][-1], matrix[i][0]
    return matrix

该函数直接接收输入的二维数组,通过两个循环实现第一列和最后一列的交换。

输出交换后的矩阵

最后,我们需要编写函数print_matrix(),用于输出交换后的矩阵。

def print_matrix(matrix):
    '''打印输出矩阵'''
    print("交换后的矩阵为:")
    for row in matrix:
        print(" ".join([str(x) for x in row]))

通过使用join()函数连接每行元素,并在每行后面添加换行符实现输出。

完整代码

import re


def input_matrix():
    '''输入矩阵并返回二维数组'''
    while True:
        matrix_string = input("请输入矩阵,矩阵元素之间用空格隔开,行与行之间用回车隔开:\n")
        # 使用正则表达式去掉多余的空格和换行符
        matrix_string = re.sub('[\n\r\s]+', ' ', matrix_string).strip()
        # 将字符串转化为二维数组
        rows = matrix_string.split(' ')
        try:
            matrix = [list(map(int, rows[i:i+len(rows)//len(rows[0])])) for i in range(0, len(rows), len(rows)//len(rows[0]))]
            return matrix
        except ValueError:
            print("输入的矩阵不合法,请重新输入。")


def swap_columns(matrix):
    '''交换矩阵中第一列和最后一列的元素'''
    # 将每一行的第一列和最后一列进行交换
    for i in range(len(matrix)):
        matrix[i][0], matrix[i][-1] = matrix[i][-1], matrix[i][0]
    # 将矩阵第一列和最后一列进行交换
    for i in range(len(matrix)):
        matrix[i][0], matrix[i][-1] = matrix[i][-1], matrix[i][0]
    return matrix


def print_matrix(matrix):
    '''打印输出矩阵'''
    print("交换后的矩阵为:")
    for row in matrix:
        print(" ".join([str(x) for x in row]))


if __name__ == '__main__':
    matrix = input_matrix()
    swapped_matrix = swap_columns(matrix)
    print_matrix(swapped_matrix)

结论

通过编写以上代码,我们可以实现交换矩阵中第一列和最后一列的元素。这个程序可以在很多实际应用中发挥重要作用,比如有时候我们需要将某些数据集的第一列和最后一列进行交换,以便更好地进行数据分析和处理。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程