找到列表的最小值并打印另一个列表中对应的索引
假设我有一些列表,比如:
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