Python程序:交换矩阵中第一列和最后一列的元素
矩阵是由多个数字按行列形式排列成的二维数组。Python没有矩阵数据类型,但我们可以使用嵌套列表或NumPy数组作为矩阵。
看下面的输入输出场景,了解如何交换矩阵中第一列和最后一列的元素。
输入输出场景
假设我们有一个使用列表表示的3X3矩阵。输出矩阵将是交换了第一列和最后一列元素的结果矩阵。
输入矩阵:
[1, 3, 4]
[4, 5, 6]
[7, 8, 3]
输出矩阵:
[4, 3, 1]
[4, 5, 6]
[3, 8, 7]
再看一个行列不等的矩阵。
输入矩阵:
['a', 'b']
['c', 'd', 'e']
['f', 'g', 'h', 'i']
输出矩阵:
['b', 'a']
['e', 'd', 'c']
['i', 'g', 'h', 'f']
下面看看交换矩阵中第一列和最后一列元素的不同方法。
交换列
我们可以通过交换矩阵的第一列和最后一列元素来简单地交换矩阵中第一列和最后一列元素。
示例
使用嵌套列表创建一个矩阵,以便我们可以应用列表索引技术来交换元素。
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 显示矩阵的函数
def display(matrix):
for row in matrix:
print(row)
print()
# 显示原始矩阵
print("原始矩阵:")
display(matrix)
# 交换列元素
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
# 显示更改后的矩阵
print("更改后的矩阵:")
display(swapColumns(matrix))
输出
原始矩阵:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
更改后的矩阵:
[3, 2, 1]
[6, 5, 4]
[9, 8, 7]
给定的矩阵是方阵,我们已经成功地交换了矩阵中第一列和最后一列的元素,这是通过使用Python正负索引完成的。
示例
本示例中,我们将交换非方形矩阵的列元素。
matrix = [['a', 'b'], ['c', 'd', 'e'], ['f', 'g', 'h', 'i']]
# 显示矩阵的函数
def display(matrix):
for row in matrix:
print(row)
print()
# 显示原始矩阵
print("原始矩阵:")
display(matrix)
# 交换列元素
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
# 显示更改后的矩阵
print("更改后的矩阵:")
display(swapColumns(matrix))
输出
原始矩阵:
['a', 'b']
['c', 'd', 'e']
['f', 'g', 'h', 'i']
更改后的矩阵:
['b', 'a']
['e', 'd', 'c']
['i', 'g', 'h', 'f']
通过使用索引来迭代矩阵的行,并使用索引来交换列元素。
使用列表操作方法
在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]]
#显示矩阵的函数
def display(matrix):
for row in matrix:
print(row)
print()
# 显示原始矩阵
print("原始矩阵: ")
display(matrix)
# 交换第一列和最后一列之间的元素
for row in matrix:
temp1 = row[-1]
temp2 = row[0]
row.pop()
row.pop(0)
row.insert(0, temp1)
row.append(temp2)
# 显示更改后的矩阵
print("更改后的矩阵: ")
display(matrix)
输出
原始矩阵:
[1, 3]
[4, 5, 6]
[7, 8, 3, 9]
更改后的矩阵:
[3, 1]
[6, 5, 4]
[9, 8, 3, 7]
通过使用临时变量和列表操作方法,我们已经成功地交换了列元素。