[英]How can i get index of all the greatest elements in a nested list or matrix?
输入 [[20, 1], [20, 7], [1, 9]]
预期输出 [(0, 0), (1, 0)]
import numpy as np
matrix = [[20, 1], [20, 7], [1, 9]]
arr2D = np.array(matrix)
result = np.where(arr2D == np.amax(arr2D))
listOfCordinates = list(zip(result[0], result[1]))
print(listOfCordinates)
提前致谢
这可能不是最有效的解决方案,但可以帮助您
matrix = [[20, 1], [20, 7], [1, 9]]
xIndex = []
yIndex = []
maxValues = []
cord = []
finalCord = []
finalMaxIndex = []
for i in range(len(matrix)):
xIndex.append(i)
maxSublist = max(matrix[i])
yIndex.append(matrix[i].index(maxSublist))
for i, j in zip(xIndex, yIndex):
cord.append((i,j))
maxValues.append(matrix[i][j])
maxValue = max(maxValues)
for i in range(len(maxValues)):
if maxValue == maxValues[i]:
finalMaxIndex.append(i)
else:
pass
for i in finalMaxIndex:
finalCord.append(cord[i])
print('Index of multiple greatest elements in nested list or matrix:', finalCord)
matrix = [[20, 1], [20, 7], [1, 9]]
output = [(0, 0), (1, 0)]
这在这里应该工作:
matrix = [[20, 1], [20, 7], [1, 9]]
max_n = matrix[0][0]
result = []
for row in range(len(matrix)):
for col in range(len(matrix[0])):
if matrix[row][col] == max_n:
result.append((row, col))
elif matrix[row][col] > max_n:
max_n = matrix[row][col]
result = [(row, col)]
print(result)
首先找到列表列表的最大值,然后使用列表推导找到值等于最大值的元素的位置
>>> lst = [[20, 1], [20, 7], [1, 9]]
>>> m = max(e for sub_lst in lst for e in sub_lst)
>>> [(i, j) for i,sub_lst in enumerate(lst) for j,e in enumerate(sub_lst) if e==m]
[(0, 0), (1, 0)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.