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

卡伦

我在解决这个问题时遇到了一些麻烦。

假设我有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]。仅剩一个问号,我用3填充。这得到[0,3,1,2]。

该列表通常很小,因此运行时间在这里并不是真正的问题。

韦当·梅塔(Vedang Mehta)

我以3个成员元组的形式合并所有列表(值,myLists中列表的索引,列表中值的索引)并按值对它进行排序。我的代码的时间复杂度为nlog(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

merged_list = list()

for index1, ls in enumerate(myLists):
    for index2, x in enumerate(ls):
        merged_list.append((x, index1, index2))

merged_list.sort()

st = set()  #to store already added indices

res = [-1 for i in range(len(myLists))]

for x, y, z in merged_list:
    if res[y] != -1 or z in st:
        continue
    res[y] = z
    st.add(z)

print(res)

输出 -

[0, 3, 1, 2]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在python中获取列表最小值的索引

来自分类Dev

使用lapply获取列表的最小值索引

来自分类Dev

熊猫数据框-获取列索引以获取一行中的最小值

来自分类Dev

从列表列表中获取包含最小值的列表

来自分类Dev

在列表中获取最小值和最大值

来自分类Dev

获取Python中数字列表中的立即最小值

来自分类Dev

找到一个列表的最小值,然后从另一个列表中打印相应的索引

来自分类Dev

SQL根据日期从多个表中获取最小值

来自分类Dev

每个唯一ID的最小值

来自分类Dev

如何获取此包含元组的列表中的最小值?

来自分类Dev

在MYSQL中获取另一列的最小值/最小值

来自分类Dev

问题获取列表/数组的最小值

来自分类Dev

在列表列表中查找每个列表的最小值的索引

来自分类Dev

Python Pandas-过滤pandas数据框以获取一行中具有最小值的行,而另一行中的每个唯一值

来自分类Dev

从列表中获取唯一值

来自分类Dev

在Perl中,如何找到列表中的最小值并保持索引与该值相对应?

来自分类Dev

从 Python 中的列表列表中获取最小值和最大值的最快方法?

来自分类Dev

如何遍历列表并检索最小值的索引,但忽略输出列表中的重复项?

来自分类Dev

从列表列表中查找“n”个最小值及其索引

来自分类Dev

numpy:获取数组中的最小值索引,忽略特定值

来自分类Dev

如何在一维数组中找到多个最小值的索引?

来自分类Dev

从列表中打印最小值(PYTHON)

来自分类Dev

Pandas:获取组最小值和相应的索引值

来自分类Dev

如何从PHP中的数组中获取最小值的随机索引

来自分类Dev

试图从字典中获取最小值

来自分类Dev

在LINQ查询中获取最小值

来自分类Dev

如何从集合中获取最小值

来自分类Dev

如何从列表中检索最小唯一值?

来自分类Dev

获取最小值

Related 相关文章

  1. 1

    在python中获取列表最小值的索引

  2. 2

    使用lapply获取列表的最小值索引

  3. 3

    熊猫数据框-获取列索引以获取一行中的最小值

  4. 4

    从列表列表中获取包含最小值的列表

  5. 5

    在列表中获取最小值和最大值

  6. 6

    获取Python中数字列表中的立即最小值

  7. 7

    找到一个列表的最小值,然后从另一个列表中打印相应的索引

  8. 8

    SQL根据日期从多个表中获取最小值

  9. 9

    每个唯一ID的最小值

  10. 10

    如何获取此包含元组的列表中的最小值?

  11. 11

    在MYSQL中获取另一列的最小值/最小值

  12. 12

    问题获取列表/数组的最小值

  13. 13

    在列表列表中查找每个列表的最小值的索引

  14. 14

    Python Pandas-过滤pandas数据框以获取一行中具有最小值的行,而另一行中的每个唯一值

  15. 15

    从列表中获取唯一值

  16. 16

    在Perl中,如何找到列表中的最小值并保持索引与该值相对应?

  17. 17

    从 Python 中的列表列表中获取最小值和最大值的最快方法?

  18. 18

    如何遍历列表并检索最小值的索引,但忽略输出列表中的重复项?

  19. 19

    从列表列表中查找“n”个最小值及其索引

  20. 20

    numpy:获取数组中的最小值索引,忽略特定值

  21. 21

    如何在一维数组中找到多个最小值的索引?

  22. 22

    从列表中打印最小值(PYTHON)

  23. 23

    Pandas:获取组最小值和相应的索引值

  24. 24

    如何从PHP中的数组中获取最小值的随机索引

  25. 25

    试图从字典中获取最小值

  26. 26

    在LINQ查询中获取最小值

  27. 27

    如何从集合中获取最小值

  28. 28

    如何从列表中检索最小唯一值?

  29. 29

    获取最小值

热门标签

归档