Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取多个列表中最小值的唯一索引_Python_List - Fatal编程技术网

Python 获取多个列表中最小值的唯一索引

Python 获取多个列表中最小值的唯一索引,python,list,Python,List,我很难理解这个问题 假设我有n个列表,每个列表包含n个元素。 对于每个列表,我需要找到最小值的索引,并将它们存储在新列表中。这很容易 问题是,我的索引列表中的两个或多个值可能相等。我需要一个具有唯一值的列表。如果两个(或更多)值相等,我想对来自smalles最小值的索引值进行优先级排序 例如: myLists = [] myLists.append([113.6, 12262.6, 21466.7, 141419.9]) # list 1 myLists.append([122284.

我很难理解这个问题

假设我有n个列表,每个列表包含n个元素。 对于每个列表,我需要找到最小值的索引,并将它们存储在新列表中。这很容易

问题是,我的索引列表中的两个或多个值可能相等。我需要一个具有唯一值的列表。如果两个(或更多)值相等,我想对来自smalles最小值的索引值进行优先级排序

例如:

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]