2014-07-11 177 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