2017-02-28 84 views
0

所以说我有list1和list2。如何使列表中的一个元素使用python调用另一个列表中的元素?

list1 = [n1,n2,n3,n4,n5,n6,n7,n8,n9,n0,star,pound] 

list2 = [1,2,3,4,5,6,7,8,9,0,star,pound] 

如何写一个函数,当列表中的一个元素被调用时,list2中的相应元素被调用?

这可能已在另一篇文章中得到解答,但我一直无法找到和/或理解如何做到这一点。

---编辑---

约翰·科尔曼的评论回答我的问题,而是要帮助别人,将来读这我会澄清一些事情。

“呼叫”可能是错误的用语,我绝对是编程的新手。这里是我在这个线程的帮助下如何使用代码。

n1 = 5 
n2 = 6 
n3 = 13 
n4 = 19 
n5 = 26 
n6 = 12 
n7 = 16 
n8 = 20 
n9 = 12 
n0 = 4 
star = 17 
pound = 27 

inputs = [n1,n2,n3,n4,n5,n6,n7,n8,n9,n0,star,pound] 
numbers = [1,2,3,4,5,6,7,8,9,0,star,pound] 
shows = dict(zip(inputs,numbers)) 
count = 1 

def loop2(): 
for input in inputs: 
    if GPIO.input(input) == False: 
     print '%s' % shows[input] 
+2

“调用”列表元素意味着什么?您的列表似乎不包含可驯化的东西。 –

+0

你能澄清你所说的“列表中的元素被称为”的意思吗?通常作为可以调用的东西的功能。这是一个函数名称列表吗? – JawguyChooser

回答

1

您可以使用.index()查找在其中一个列表中的一个元素出现,再喂该索引到其他列表:

>>> list1 = ['n1','n2','n3','n4','n5','n6','n7','n8','n9','n0','star','pound'] 
>>> list2 = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'star', 'pound'] 
>>> list2[list1.index('n5')] 
'5' 

或者,你可以创建一个字典链接两个列表:

>>> d = dict(zip(list1,list2)) 
>>> d['n5'] 
'5' 
+0

请记住,找不到该项目时.index()会返回ValueError。 .find()将返回-1,如果该项目不存在。如果使用.index(),则可能需要使用try:except:语句,而如果使用find,则可以测试> -1。 – JawguyChooser

+0

@JawguyChooser好点--OP需要添加一些错误处理来使这个强大,但它似乎是他们正在寻找的东西(即使措辞有点模糊)。 –

+0

你也可以使用'd = dict(zip(list1,list2))' –

0

没有多少可以回答,如果你不弄清楚你是什么意思的“相应的列表2元素被称为”你的意思是函数调用或东西?

无论如何,不​​管情况如何,你都需要在你想要的列表中定义两个项目之间的关系。在上面的例子中,我最好的猜测是list1n1 - >list21,或者按索引对应。

可以实现这一点通过定义一个字典,像

relate_dict = {"n{}".format(k):k for k in list2} 

所以每relate_dict[key1]东西,与key1list1将返回list2对应,即relate_dict [ 'N1'] => '1'

在索引的情况下,只需使用zip

相关问题