2017-02-28 9 views
0

だから私はlist1とlist2を持っていると言う。リスト内の1つの要素を作成するには、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] 

list1の要素が呼び出されると、list2の対応する要素が呼び出される関数を書くにはどうすればいいですか?

これは別の投稿で回答されている可能性がありますが、これを見つける方法や理解できていない可能性があります。

---編集---

ジョン・コールマンさんのコメントは私の質問に答え、私はいくつかのことを明確にし、将来的にこれを読んで他人を助けるために。

"call"が間違った用語だったかもしれませんが、私はプログラミングの初心者です。ここで私はこのスレッドの助けを借りてコードを使用しています。

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

次の2つのリストのうちの一つの要素が発生した場所を調べるために.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の対応する要素が呼び出された」とはどういう意味ですか明確にしていない場合、あなたは関数呼び出しや何かを意味答えすることができます?

とにかく、どんな状況であっても、あなたが望むリストの2つの項目の間の関係を定義する必要があります。上記の例では、list1n1 - >list21というインデックスまたはそれに対応するインデックスを使用しています。

あなたは、これがによってそうlist1key1を持つすべてのrelate_dict[key1]は、すなわちrelate_dict、list2に対応する[ 'N1'] => '1'

を返します、

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

のようなものを辞書を定義達成することができます

インデックスの場合は、zip

関連する問題