Python 获取多个列表中最小值的唯一索引
我很难理解这个问题 假设我有n个列表,每个列表包含n个元素。 对于每个列表,我需要找到最小值的索引,并将它们存储在新列表中。这很容易 问题是,我的索引列表中的两个或多个值可能相等。我需要一个具有唯一值的列表。如果两个(或更多)值相等,我想对来自smalles最小值的索引值进行优先级排序 例如:Python 获取多个列表中最小值的唯一索引,python,list,Python,List,我很难理解这个问题 假设我有n个列表,每个列表包含n个元素。 对于每个列表,我需要找到最小值的索引,并将它们存储在新列表中。这很容易 问题是,我的索引列表中的两个或多个值可能相等。我需要一个具有唯一值的列表。如果两个(或更多)值相等,我想对来自smalles最小值的索引值进行优先级排序 例如: myLists = [] myLists.append([113.6, 12262.6, 21466.7, 141419.9]) # list 1 myLists.append([122284.
myLists = []
myLists.append([113.6, 12262.6, 21466.7, 141419.9]) # list 1
myLists.append([122284.8, 111161.8, 106581.1, 141419.9]) # list 2
myLists.append([25427.9, 13694.0, 5148.9, 141419.9]) # list 3
myLists.append([21354.9, 10599.2, 0.1, 141419.9]) # list 4
这将给出索引列表[0,2,2,2]。根据列表2、3和4中的第二个值,我看到最小的值出现在列表4中,因此我的索引列表应该类似于[0、,,2]
更进一步说,我需要用值1和3来填充问号,但哪一个去了哪里?通过检查,我看到13694.0(列表3中的索引1)小于111161.8(列表2中的索引1),并且每个列表中的第三个索引值相等,因此我应该从列表3中选择索引1
这意味着我的新索引列表是[0,?,1,2]。只剩下一个问号,我就用三个填好了。这就得到了[0,3,1,2]
列表通常很小,因此运行时间在这里不是一个真正的问题。我将所有列表以3个成员元组的形式(值、MyList中的列表索引、list中的值索引)合并,并按值排序。我的代码的时间复杂度是nlog(n) 输出-
[0, 3, 1, 2]
[0, 3, 1, 2]