2014-07-11 179 views
0

對不起這樣的常規問題污染,卻發現相關的值:蟒蛇:從2所列出

如果我有2所列出,例如:

list1 = [1,2,3,4,5,6,7] 

list2 = [20,40,60,80,100,120,140] 

我如何才能找到與關聯的值3在列表1中(答案是60)

在這種情況下1與20,2和w/40等等相關聯。

+0

您是否正在嘗試爲'list1'中的許多不同值找到關聯值,或者只做一次? – unutbu

+1

字典是一個更好的結構,你(似乎)想要 – wnnmaw

+0

我會想多次做它。我打算爲list1設置for循環並嘗試從list2獲取關聯值 – bigCow

回答

4

將它們壓縮並製作字典。

>>> list1 = [1,2,3,4,5,6,7] 
>>> list2 = [20,40,60,80,100,120,140] 
>>> dict(zip(list1,list2)) 
{1: 20, 2: 40, 3: 60, 4: 80, 5: 100, 6: 120, 7: 140} 

>>> l = dict(zip(list1,list2)) 

>>> l[2] 
40 

>>> l[3] 
60 
+1

如果'list1'中有重複項,該怎麼辦? –

+0

謝謝,但不會在我的情況。這個解決方案正是我想要的。非常感謝 – bigCow

0

這聽起來像你只是想zip

>>> list1 = [1,2,3,4,5,6,7] 
>>> list2 = [20,40,60,80,100,120,140] 
>>> zip(list1, list2) 
[(1, 20), (2, 40), (3, 60), (4, 80), (5, 100), (6, 120), (7, 140)] 
>>> 

當然,作爲@wnnmaw說,一個dictionary很可能是更好地在這裏:

>>> dict(zip(list1, list2)) 
{1: 20, 2: 40, 3: 60, 4: 80, 5: 100, 6: 120, 7: 140} 
>>> 
0

如果你有一個理由爲了讓他們保持在數組中,使用這個答案。 否則,請當你說「關聯」使它們成爲一本字典,在其他的答案

建議你要問真正的問題是:

「什麼值相同指數作爲(無論價值)在這個其他名單?「

list1 = [1,2,3,4,5,6,7] 
list2 = [20,40,60,80,100,120,140] 

print list2[list1.index(3)] # 60