2017-11-08 6 views
0

私は2つのリストを持っています。特定の条件の下で、最初のリストから別のリストへの1つのアイテムを一致させようとしています。私は、最初のセット['A'、 'B'、 'C​​'、4、 'D']と一致するようにコードを書いて、同じ場所に4を持つlist2からのみセットを印刷します。そう基本的に私の出力は次のようになります。配列から要素をマッチさせ、マッチだけを出力する方法は?

['A','B','C',4,'D'] 
[1, 2, 3, 4, 5] 

よく私はここでの唯一の試合

を印刷する方法を見つけ出すことはできません私のコードです:

list1 = [['A','B','C',4,'D'],['A','B','C',9,'D'],['A','B','C',5,'D'],['A','B','C',6,'D'],['A','B','C',7,'D']] 
list2 = [[1,2,3,2,5],[1,2,3,5,5],[1,2,3,3,5],[1,2,3,4,5],[1,2,3,1,5],[1,2,3,2,5]] 

for var in list1: 
    print var 
    for i in range(0,len(list2)): 
      for var1 in list2: 
       if list1[0][3] == list2[i][3]: 
        print var1 
+0

あなたが書いている間、私はあなたのコードであなたのシフトボタンの作品を見ることができますが、それが壊れています他の場所? – Sam

答えて

0

izipitertoolsとすると、プログラムが簡単になります。あなただけizipを2回使用することにより要素

from itertools import izip 

list1 = [['A','B','C',4,'D'],['A','B','C',9,'D'],['A','B','C',5,'D'],['A','B','C',6,'D'],['A','B','C',7,'D']] 
list2 = [[1,2,3,2,5],[1,2,3,5,5],[1,2,3,3,5],[1,2,3,4,5],[1,2,3,1,5],[1,2,3,2,5]] 

for item1 in list1: 
    for item2 in list2: 
     for i,j in izip(item1, item2): 
      if i==j: 
       print i 

を印刷する必要があると仮定すると、それははるかに容易になるだろう

from itertools import izip 

list1 = [['A','B','C',4,'D'],['A','B','C',9,'D'],['A','B','C',5,'D'],['A','B','C',6,'D'],['A','B','C',7,'D']] 
list2 = [[1,2,3,2,5],[1,2,3,5,5],[1,2,3,3,5],[1,2,3,4,5],[1,2,3,1,5],[1,2,3,2,5]] 

for i in izip(list1,list2): 
    for item1, item2 in izip(i[0],i[1]): 
     if item1 == item2: 
      print item1 
+0

ありがとう、それは私が探していたものです。私はPythonにはまだまだ新しく、 'in'の前に複数の変数を持つforループを実行できるかどうかは分かりませんでした。 – Mikey9191

+0

python2でizipを、python3でzipを使用するとできます。私は両方のドキュメントを読むことを強くお勧めします。両方とも、複数のリストを反復するときに非常に役立ちます – yash

+0

上記のコードの場合、あなたの質問に答えました。承認済みとしてマークしてください – yash

0

ほとんど。それはあなたが望んでいたものですが、場合、私はわからない、次のコードを印刷配列の4番目の場所に同じ数の持っているすべてのペア:

list1 = [['A','B','C',4,'D'],['A','B','C',9,'D'],['A','B','C',5,'D'], 
['A','B','C',6,'D'],['A','B','C',7,'D']] 
list2 = [[1,2,3,2,5],[1,2,3,5,5],[1,2,3,3,5],[1,2,3,4,5],[1,2,3,1,5], 
[1,2,3,2,5]] 

for t in list1: 
    print t 
    for b in list2: 
     if t[3] == b[3]: 
     print b 

出力された:

[「A」 D '] [1,2,3,4,5]
[' A '、' B '、' C '、9、' D '] [ D '] [1,2,3,5,5] [' A '、' B '、' C '、6、' D ']' A '、' B '、' C ' ['A'、 'B'、 'C​​'、7、 'D']

あなたが探していたものですか?

関連する問題