我正在学习如何使用嵌套循环。我需要找到'n x n'矩阵最大值的位置,并且我了解我需要包含一个条件语句,一旦确认最大值,该条件语句将停止嵌套的for循环。到目前为止,我设法编写了一个嵌套循环,该循环遍历矩阵的每一行和每一列以输出其最终位置。
要找到矩阵的最大值,我知道一种可能的方法是使用:
max(sum(matrix, []))
但是,我不完全确定在哪里放置此条件才能返回我要查找的内容。
答案 0 :(得分:1)
当您执行for i in range(n)
时,i
将在循环的每次迭代中单独增加。您不需要增加它。
这是遍历矩阵的方式:
n = len(matrix)
for i in range(n):
for j in range(n):
print('position ({}, {}) in matrix: {}'.format(i, j, n[i][j]))
因此,要找到最大值的位置,您可以跟踪到目前为止所看到的最大值以及该值的位置,如下所示:
n = len(matrix)
max_value = float('-inf')
max_position = None
for i in range(n):
for j in range(n):
value = n[i][j]
if value > max_value:
max_value = value
max_position = (i, j)
print('max value is {} at position ({}, {})'.format(
max_value,
max_position[0],
max_position[1]
))
答案 1 :(得分:0)
您可以尝试执行以下步骤:
答案 2 :(得分:0)
import numpy as np
print("enter the dimensions")
m = int(input())
n = int(input())
print("enter the elements of the matrix")
list1 = []
for i in range(m):
list2 = []
for j in range(n):
list2.append(int(input()))
list1.append(list2)
print(np.asarray(list1))
max_elements = []
for i in range(m):
list1[i].sort()
max_element = list1[i][n-1]
max_elements.append(max_element)
max_elements.sort()
the_max_element = max_elements[m-1]
print(the_max_element)
我使用了对内部列表进行排序然后从中访问最大元素的概念。对这个新生成的列表进行另一种排序以获得最大的元素。 希望以上代码对您有所帮助。使用numpy以多维格式打印列表。