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 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告