Python程序交换矩阵中每行首尾元素


矩阵是一组以行和列格式排列的数字。在Python中,无法直接创建矩阵。相反,我们可以使用嵌套列表或NumPy数组作为矩阵。

下面演示了交换矩阵首尾行元素的方法。

输入输出场景

假设我们有一个使用嵌套列表表示的3X3矩阵。输出矩阵将是结果矩阵,其首尾行元素已交换。

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

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

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

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

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

让我们逐一讨论方法 -

交换行

我们可以通过交换首尾行来简单地交换矩阵中每行首尾元素。

示例

在此示例中,我们将使用首行索引[0]和末行索引[-1]来交换首尾行。

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)

# interchanging the element between first and last rows
def swapLines(matrix):
   matrix[0], matrix[-1] = matrix[-1], matrix[0]
   return matrix

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

输出

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

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

通过使用Python正负索引(matrix[0],matrix[-1]),我们成功地交换了矩阵中每行首尾元素。

示例

在此示例中,我们将交换行和列维度不相等的矩阵的首尾行。

matrix = [['a', 'b'], ['c', 'd', 'e'], [1, 2, 3]]

#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 rows
matrix[0], matrix[-1] = matrix[-1], matrix[0]

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

输出

Original matrix: 
['a', 'b']
['c', 'd', 'e']
[1, 2, 3]

Changed matrix: 
[1, 2, 3]
['c', 'd', 'e']
['a', 'b']

在此示例中,原始矩阵不是方阵,我们已成功交换了矩阵中每行首尾元素。

使用pop()、insert()和append()方法

在Python中,pop()、insert()和append()方法是列表操作方法。

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

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

  • append()  方法用于在列表末尾添加元素。

示例

借助上述方法,我们将交换矩阵的首尾行元素。

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)

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

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

输出

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

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

通过使用称为pop()、insert()和append()的Python列表操作方法,我们已成功交换了矩阵中每行首尾元素。

注意 - 矩阵是使用Python的列表嵌套创建的。

更新于: 2023年5月15日

92 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告