猿问

用于查找最大值的嵌套 For 循环

我正在学习如何使用嵌套循环。我需要找到“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]))

SMILET

您可以尝试以下步骤:假设矩阵的第一个元素是具有最大值的元素,即 [0,0] 位置处的元素执行以下操作,将位置存储在两个变量中(例如row=0,col=0)和max中的值现在,像往常一样遍历矩阵,并在每次迭代时检查当前元素(位置 [i,j])是否大于存储在max中的元素,如果是,则将max的值替换为当前元素 vList itemalue使用row和col,如果没有,则继续下一次迭代。返回row和col。

隔江千里

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 以多维格式打印列表。
随时随地看视频慕课网APP

相关分类

Python
我要回答