我正在学习如何使用嵌套循环。我需要找到“nx n”矩阵的最大值的位置,并且我知道我需要包含一个条件语句,一旦最大值被确认,就停止嵌套的 for 循环。到目前为止,我设法编写了一个嵌套循环,该循环遍历矩阵的每一行和每一列以输出其最终位置。
为了找到矩阵的最大值,我知道一种可能的方法是使用:
max(sum(matrix, []))
但是,我不完全确定在哪里放置这个条件来返回我正在寻找的东西。
冉冉说
浏览 290回答 3
3回答
BIG阳
当你这样做时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 = Nonefor 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]))
import numpy as npprint("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 以多维格式打印列表。