使用Python查找矩阵中每一行的最大元素


在本文中,我们将学习一个Python程序,用于查找矩阵中每一行的最大元素。

假设我们已经得到一个NxN的输入矩阵。我们将使用以下方法查找输入矩阵中每一行的最大元素。

使用的方法

以下是完成此任务的各种方法:

  • 使用嵌套for循环

  • 使用max()函数

  • 使用map()和lambda函数

方法1:使用嵌套for循环

算法(步骤)

以下是执行所需任务的算法/步骤:

  • 创建一个函数maximumRowElement(),通过接受输入矩阵作为参数来打印输入矩阵每一行的最大元素。

  • 使用len()函数计算矩阵的长度,以获取矩阵的行数。

  • 通过计算矩阵中任意一行的长度来获取矩阵的列数。

  • 使用for循环遍历矩阵的行。

  • 使用一个变量存储最大行元素,并将其初始化为0。

  • 使用另一个嵌套的for循环遍历矩阵的所有列。

  • 检查当前元素值是否大于上述max变量。

  • 如果上述条件为真,则将此元素设置为最大值。

  • 打印最大值变量。

  • 创建一个变量来存储输入矩阵,并使用嵌套for循环打印给定的矩阵。

  • 通过将输入矩阵作为参数传递给上述定义的maximumRowElement()函数,打印矩阵中每一行的最大元素。

示例

以下程序使用嵌套for循环返回输入矩阵每一行的最大元素:

# creatind a function to get the maximum element in a
# row of a matrix by accepting the input matrix as an argument
def maximumRowElement(inputMatrix):
   # getting the number of rows of the given matrix
   rows = len(inputMatrix)
   # getting the number of columns of the given matrix
   cols = len(inputMatrix[0])
   # traversing through the rows of the matrix
   for p in range(rows):
      # initializing maximum with 0 for finding a maximum element of each row
      maximum = 0
      # traversing through all the columns of a matrix
      for q in range(cols):
         # checking whether the current element value is greater than the max value
            if inputMatrix[p][q] > maximum:
               # assigning that element to the maximum now it becomes the maximum element
               maximum = inputMatrix[p][q]
      # printing the maximum element of each row of a matrix
      print(maximum)
# input matrix(3x3 matrix)
inputMatrix = [[5, 1, 3, 4],
               [6, 10, 8, 11],
               [7, 2, 4, 3],
               [1, 2, 3, 4]]

print("The Given Matrix is:")
# traversing through the rows of a matrix
for m in range(len(inputMatrix)):
   # traversing through all the columns of the current row
   for n in range(len(inputMatrix[0])):
      # printing the corresponding element
      print(inputMatrix[m][n], end=' ')
   print()
print("maximum element in each row of an input matrix is:")
# calling the maximumRowElement() function by passing
# input matrix to it
maximumRowElement(inputMatrix)

输出

执行上述程序后,将生成以下输出:

The Given Matrix is:
5 1 3 4 
6 10 8 11 
7 2 4 3 
1 2 3 4 
maximum element in each row of an input matrix is:
5
11
7
4

方法2:使用max()函数

max()方法(返回迭代器中值最高的项目/最大数字)

示例

以下程序使用max()函数返回输入矩阵每一行的最大元素:

# input matrix(3x3 matrix)
inputMatrix = [[5, 1, 3, 4],
               [6, 10, 8, 11],
               [7, 2, 4, 3],
               [1, 2, 3, 4]]
print("The Given Matrix is:")
# traversing through the rows of a matrix
for m in range(len(inputMatrix)):
   for n in range(len(inputMatrix[0])):
      # printing the corresponding element
      print(inputMatrix[m][n], end=' ')
   print()

print("maximum element in each row of an input matrix is:")
# traversing through each row of elements of the  matrix
for k in inputMatrix:
   # printing the maximum element in a row using the max() function
      print(max(k))

输出

The Given Matrix is:
5 1 3 4 
6 10 8 11 
7 2 4 3 
1 2 3 4 
maximum element in each row of an input matrix is:
5
11
7
4

方法3:使用map()和lambda函数

使用内置的map()函数是另一种可以用于获取矩阵每一行中最大元素的方法。map()方法以确定的方式(例如列表或矩阵)对迭代器的每个元素应用指定的函数。在这种情况下,map()方法可以用来对矩阵的每一行应用max()函数。

示例

以下程序使用map()和lambda函数返回输入矩阵每一行的最大元素:

# input matrix(3x3 matrix)
inputMatrix = [[5, 1, 3, 4],
               [6, 10, 8, 11],
               [7, 2, 4, 3],
               [1, 2, 3, 4]]
print("The Given Matrix is:")
# traversing through the rows of a matrix
for m in range(len(inputMatrix)):
   # traversing through all the columns of the current row
   for n in range(len(inputMatrix[0])):
      # printing the corresponding element
      print(inputMatrix[m][n], end=' ')
   print()

print("maximum element in each row of an input matrix is:")
# Applying max() function to each list element(row) to get maximum value
result = list(map(lambda row: max(row), inputMatrix))
# Traversing in the result list
for i in result:
   # Printing the maximum row element
   print(i)

输出

The Given Matrix is:
5 1 3 4 
6 10 8 11 
7 2 4 3 
1 2 3 4 
maximum element in each row of an input matrix is:
5
11
7
4

结论

在本文中,我们学习了三种不同的方法来打印给定矩阵中每一行的最大值。我们还学习了如何使用map()函数对每个迭代器应用特定条件。

更新于:2023年1月23日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告