4
我在解決此問題時遇到了一些麻煩。獲取多個列表中的最小值的唯一索引
假設我有n個包含n個元素的列表。 對於每個列表,我需要找到最小值的索引並將它們存儲在一個新列表中。這很簡單。
問題是,我的索引列表中的兩個或多個值可能相等。我需要一個具有唯一值的列表。如果兩個(或更多)值相等,我想優先考慮來自最小值的索引值。
例子:
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]。只剩下一個問號,我用3填充。這給出[0,3,1,2]。
這些列表大多數都很小,所以運行時間並不是真正的問題。