如何在列表中创建一个元素使用python调用另一个列表中的元素?

时间:2017-02-28 03:40:35

标签: python

所以说我有list1和list2。

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]

如何编写一个函数,当调用列表1的元素时,调用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 :(得分: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'

答案 1 :(得分:0)

如果你没有澄清你的意思,那么就没有多少可以回答" list2中的相应元素被称为",你的意思是函数调用还是什么?

无论如何,无论情况如何,您都需要在所需列表中定义两个项目之间的关系。在上面的示例中,我最好的猜测是list1' s n1 - > list2' s 1或相应的索引。

您可以通过定义字典来实现此目的,例如

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

因此relate_dict[key1]key1 list1的每个list2将返回print中的相应内容,即related_dict [' n1'] => ' 1'

如果是索引,只需使用zip