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]
使用临时变量和列表操作方法,我们成功地交换了列元素。