gpt4 book ai didi

python - 在 python 中查找行和列中的最小对值?

转载 作者:太空宇宙 更新时间:2023-11-04 06:15:22 24 4
gpt4 key购买 nike

我的程序中有一个函数可以进行拆分和 float 。然后将矩阵传递给主程序。现在我有一个函数可以找到具有最小值的行和列。在 Martijn Pieters 的帮助下,我能够得到最小值,但对。下面给出了输出示例。E 是从 main 传递给此函数的方阵。

值存储在 txt 文件中并在单独的函数中读取,矩阵传递给 main。从它们的矩阵传递到下面的函数。

0 2 8 9
2 4 9 9
4 7 4 8
3 4 8 9

代码:

def closest_pair(e):
'''for row in range(len(e)):
for col in range(0,len(row),1):
minrow = min(e[row])
mincol = min(e[col])
return ([minrow], [mincol])'''
result = min((min((v, c) for c, v in enumerate(row)), r) for r, row in enumerate(e))
return result[1], result[0][1]

这帮助我找到了行和列的最小值,但是输出是得到这对。同样对于第一个值为 0 的值,如果 (0, 0) 的值为 0,那么 0 将不算作最小值。话虽如此,例如,如果第 1 行和第 1 列的值是 [2,2] 作为对,并且是唯一比输出 (1,1) 最小的对。

最佳答案

你想要这个吗?

>>> def closest_pair(e):
... remapped = [(e[x][y], (x, y)) for x, row in enumerate(e) for y, col in enumerate(row)]
... return min(remapped)
...
>>> a = [[0, 2, 8, 9], [2, 4, 9, 9], [4, 7, 4, 8], [3, 4, 8, 9]]
>>> closest_pair(a)
(0, (0, 0))

或者:

def closest_pair(e):
return min(
(e[x][y], (x, y))
for x, row in enumerate(e)
for y, col in enumerate(row)
)

关于python - 在 python 中查找行和列中的最小对值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16042773/

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