查找嵌套列表及其索引的最小值

Finding the minimum value of a nested list and its index

我有一个包含 None 元素和整数的嵌套列表。它看起来很像这样:

aList = [[None, 8.0, 1.0], [2.0, 3.0], [9.0], [5.0, None, 4.0]]

None 元素不遵循任何特定模式,因此可以在列表中的任何位置找到。我想获得两样东西:

  1. 所有整数中的最小值(minimum)。

  2. 完全定义这个最小值位置的索引。换句话说,这两个数字 ( i, j ) 满足:

    aList[i][j] = minimum
    

你可以使用这个:

aList = [[None, 8.0, 1.0], [2.0, 3.0], [9.0], [5.0, None, 4.0]]

minimum = sys.maxsize
i_min, j_min = 0, 0

for i, a in enumerate(aList):
    for j, b in enumerate(a):
        if b and b < minimum:
            i_min, j_min, minimum = i, j, b

print(minimum, i_min, j_min)
# 1.0 0 2
print(aList[i_min][j_min] == minimum)
# True

这是一个可能的解决方案:

import sys

aList = [[None, 8.0, 1.0], [2.0, 3.0], [9.0], [5.0, None, 4.0]]
mininum = sys.maxsize

for j, ele in enumerate(aList):
    cur_min = min(float(i) for i in ele if i is not None)
    if cur_min < mininum:
        minimum = cur_min
        pos_index = ele.index(minimum)
        list_index = j

print(aList[list_index][pos_index])