2014-03-01 63 views
1

假設我有一些列表,例如查找列表的最小值並從另一個列表中打印相應的索引

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

我想找到的list1最小值,並採取最小值的指數,並用它來從list2打印出來的值是對應的索引。

min(list1)會給我3.1,索引2,現在我想要print list2[2]

應該指出,這些不是我的實際值,它們要複雜得多。我只需要一般的想法。

+0

如果什麼有一個以上的三分球? – thefourtheye

+0

也許我應該說沒有值可以是相同的,它總是在變化,從不相同 –

回答

2
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 
+1

它的工作原理,謝謝。枚舉只是一個術語還是實際功能? –

+1

@BobUnger它的內置函數:) – thefourtheye

+0

由於我以前見過並使用它,所以zip函數更好。再次感謝 –

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]) 
0

它可以用做索引:

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

輸出:

3 
相關問題