gpt4 book ai didi

python - 列表列表及其索引中的最大值

转载 作者:太空狗 更新时间:2023-10-30 01:00:51 29 4
gpt4 key购买 nike

li = [[1,2], [2,3], [7,6]]

如何有效地找到最大值及其索引?假设对于 li 我想要:

max_value = 7

max_index = (2, 0)

我可以这样做:

max_value = 0
for row_idx, row in enumerate(alignment_matrix):
for col_idx, col in enumerate(row):
if col > max_value:
max_value = col
max_index = (row_idx, col_idx)

但我需要一种不使用太多不必要变量的有效方法。

最佳答案

使用 maxgenerator expression ,你可以更简短地表达它:

max_value, max_index = max((x, (i, j))
for i, row in enumerate(li)
for j, x in enumerate(row))

但是,时间复杂度是相同的,因为这个也使用了嵌套循环。

更新

正如@jonrsharpe 指出的,在重复 max_value 的情况下,上述解决方案将为您提供找到该值的最大索引。

如果这不是您想要的,您可以将 key 函数参数传递给 max 以自定义行为:

max_value, max_index = max(((x, (i, j))
for i, row in enumerate(li)
for j, x in enumerate(row)),
key=lambda (x, (i, j)): (x, -i, -j))

关于python - 列表列表及其索引中的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31772131/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com