Python程序:交换矩阵中每一列首尾元素


矩阵是由许多数字以行和列的形式排列成的二维数组。Python 本身没有表示矩阵的数据类型,但我们可以使用嵌套列表或 NumPy 数组来表示矩阵。

请参考以下输入输出示例,了解如何交换矩阵的首列和末列元素。

输入输出示例

假设我们有一个用列表的列表表示的 3X3 矩阵。输出矩阵将是首列和末列元素被交换后的结果矩阵。

Input matrix: 
[1, 3, 4]
[4, 5, 6]
[7, 8, 3]
Output matrix: 
[4, 3, 1]
[4, 5, 6]
[3, 8, 7]

让我们考虑另一个行数和列数不相等的矩阵。

Input matrix: 
['a', 'b']
['c', 'd', 'e']
['f', 'g', 'h', 'i']

Output matrix: 
['b', 'a']
['e', 'd', 'c']
['i', 'g', 'h', 'f']

让我们看看交换矩阵中每一列首尾元素的不同方法。

交换列

我们可以简单地通过交换矩阵的首列和末列元素来交换矩阵中每一列的首尾元素。

示例

使用列表的列表创建一个矩阵,以便我们可以应用列表索引技术来交换元素。

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

#function for displaying matrix
def display(matrix):
   for row in matrix:
      print(row)
   print()

# displaying original matrix
print("Original matrix: ")
display(matrix)

# swap column elements
def swapColumns(matrix):
   for i in range(len(matrix)):
      t = matrix[i][0]
      matrix[i][0] = matrix[i][-1]
      matrix[i][-1] = t
   return matrix

# displaying changed matrix
print("Changed matrix: ")
display(swapColumns(matrix))

输出

Original matrix: 
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

Changed matrix: 
[3, 2, 1]
[6, 5, 4]
[9, 8, 7]

给定矩阵是一个方阵,我们已经成功地交换了给定矩阵中每一列的首尾元素,这是通过使用 Python 的正索引和负索引实现的。

示例

在这个例子中,我们将交换非方阵的列元素。

matrix = [['a', 'b'], ['c', 'd', 'e'], ['f', 'g', 'h', 'i']]

#function for displaying matrix
def display(matrix):
   for row in matrix:
      print(row)
   print()

# displaying original matrix
print("Original matrix: ")
display(matrix)

# swap column elements
def swapColumns(matrix):
   for i in range(len(matrix)):
      t = matrix[i][0]
      matrix[i][0] = matrix[i][-1]
      matrix[i][-1] = t
   return matrix

# displaying changed matrix
print("Changed matrix: ")
display(swapColumns(matrix))

输出

Original matrix: 
['a', 'b']
['c', 'd', 'e']
['f', 'g', 'h', 'i']

Changed matrix: 
['b', 'a']
['e', 'd', 'c']
['i', 'g', 'h', 'f']

使用 for 循环迭代矩阵的行,并使用索引交换列元素。

使用列表操作方法

在 Python 中,pop()、insert() 和 append() 是列表操作方法。矩阵是用列表的列表创建的,以便我们可以使用这些列表操作方法来交换矩阵中每一列的首尾元素。

  • pop() − pop 方法删除指定位置的元素。默认情况下,它删除最后一个元素。

语法

list_obj.pop(index)
  • insert() − 此方法可用于在任何所需位置插入元素。此方法需要两个参数,一个是元素,另一个是插入元素的索引。

语法

list_obj.insert(index, element)
  • append() − 方法用于在列表末尾添加元素。

语法

list_obj.append(item)

示例

让我们举个例子,并应用 pop()、insert() 和 append() 方法。

matrix = [[1, 3], [4, 5, 6], [7, 8, 3, 9]]

#function for displaying matrix
def display(matrix):
   for row in matrix:
      print(row)
   print()

# displaying original matrix
print("Original matrix: ")
display(matrix)

# interchanging the element between first and last columns
for row in matrix:
   temp1 = row[-1]
   temp2 = row[0]
   row.pop()
   row.pop(0)
   row.insert(0, temp1)
   row.append(temp2)

# displaying changed matrix
print("Changed matrix: ")
display(matrix)

输出

Original matrix: 
[1, 3]
[4, 5, 6]
[7, 8, 3, 9]

Changed matrix: 
[3, 1]
[6, 5, 4]
[9, 8, 3, 7]

使用临时变量和列表操作方法,我们已经成功地交换了列元素。

更新于:2023年5月15日

159 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告