找到列表的最小值并打印另一个列表中对应的索引

2 投票
3 回答
1768 浏览
提问于 2025-04-17 20:26

假设我有一些列表,比如:

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

我想找到 list1 中的最小值,然后用这个最小值的索引去 list2 中找到对应的值并打印出来。

比如,使用 min(list1) 可以得到 3.1,它的索引是 2,接下来我想用 print list2[2] 来打印 list2 中这个索引对应的值。

需要说明的是,这些值并不是我的实际数据,实际数据要复杂得多。我只是想表达一个大概念。

3 个回答

0

可以通过使用索引来实现:

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

输出结果:

3
1

这样做应该可以

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
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),也就是最小的元素是3.1,它在列表中的位置是2。所以我们只取第二个元素,然后从 list2 中找到对应的元素。

还有另一种方法可以做到这一点:

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

撰写回答