【问题标题】:Find the minimum value of a list and print the corresponding index from another list找到一个列表的最小值并从另一个列表中打印相应的索引
【发布时间】:2014-03-02 03:17:18
【问题描述】:

假设我有一些列表,例如

list1 = [9.2,6.6,3.1,6.9]
list2 = [1,2,3,4]

我想找到list1 的最小值并获取该最小值的索引并使用它打印出list2 中对应索引的值。

min(list1) 会给我3.1,索引为2,现在我想print list2[2]

应该注意这些不是我的实际值,它们要复杂得多。我只需要大致的想法。

【问题讨论】:

  • 如果有多个3s怎么办?
  • 也许我应该说,没有任何价值观可以相同,它总是在变化,而且永远不会相同

标签: python list selection


【解决方案1】:
list1, list2 = [9.2,6.6,3.1,6.9], [1,2,3,4]
print list2[min((j,i) for i, j in enumerate(list1))[1]]
# 3

说明:

min((j,i) for i, j in enumerate(list1)) 将给出最小元素及其索引。在这种情况下,它将返回(3.1, 2)。所以我们只取第二个元素,从list2获取对应的元素。

另一种方法是

print min(zip(list1, list2))[1]
# 3

【讨论】:

  • 它有效,谢谢。枚举只是一个术语还是一个实际的函数?
  • @BobUnger 它是一个内置函数:)
  • zip 功能更好,因为我以前见过并使用过它。再次感谢
【解决方案2】:

应该这样做

print (list2[list1.index(min(list1))])

长格式:

list1 = [9.2,6.6,3.1,6.9]
list2 = [1,2,3,4]
a = min(list1)
b= list1.index(a)  
print (list2[b])

【讨论】:

    【解决方案3】:

    可以使用索引来完成:

    list2[list1.index(min(list1))]
    

    输出:

    3
    

    【讨论】:

      猜你喜欢
      • 2016-05-21
      • 1970-01-01
      • 2014-12-21
      • 2022-01-05
      • 2014-05-18
      • 2020-08-17
      • 1970-01-01
      • 2022-12-31
      • 2020-05-08
      相关资源
      最近更新 更多