微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有一个单行代码可以在矩阵中找到最大值?

如何解决是否有一个单行代码可以在矩阵中找到最大值?

您可以使用生成器表达式在矩阵中找到最大值。这样,您可以避免在内存中构建矩阵元素的完整列表。

maximum = max(max(row) for row in matrix)

而不是此处先前答案中给出的列表理解

maximum = max([max(row) for row in matrix])

这来自PEP(原理部分):

…许多用例不需要在内存中创建完整列表。相反,

生成器表达式对于诸如sum(),min()和max()之类的函数特别有用,这些函数将可迭代的输入减少为单个值

当与诸如sum(),min()和 归约函数结合使用时,生成器表达式的实用性将大大增强。

解决方法

要在数字矩阵中找到最大值,我们可以编写5行代码来解决该问题:

ans = matrix[0][0]
for x in range(len(matrix)):
    for y in range(len(matrix[0])):
        ans = max(ans,matrix[x][y])
return ans

有没有针对此问题的一线解决方案?我想到的那个实际上很尴尬:

return max(max(matrix,key=max))

要么

return max(map(max,matrix))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。