2016-11-15 15 views
-2

すべてのリストの要素を比較し、それらが他の要素の値内で+または - 40(または同じ)であるかどうかを確認したい。例えばPythonの複数のリストの要素を比較する

:その要素の一つが

list1 = [100,200,300,400,400] 
list2 = [90,400,410,500,600] 
list3 = [600,380,110,800,900] 

output: 400,410,380 

360との間及び440 Iがループの二重を試みたが、そのてきている場合LIST2 & LIST3内のすべての要素と比較するLIST1における値400リスト1の1つの要素のみをチェックします:

for x in list1: 
    for xy in list2, list3: 
    if x <= 400 <= xy: 
    print "something" 

しかし、何も印刷されません。

私の説明と例が十分であることを願っています。もしあなたが逃していることを私に教えてください!

ありがとうございます!

+2

あなたのためにコードを記述していただきたいようです。多くのユーザーは、苦労しているコーダーのコードを作成したいと考えていますが、通常、ポスターが既に問題を解決しようとしているときにのみ役立ちます。この努力を実証する良い方法は、これまでに書いたコード、サンプル入力(もしあれば)、期待される出力、実際に得られる出力(出力、トレースバックなど)を含めることです。あなたが提供する詳細があれば、受け取る可能性のある回答が増えます。 [FAQ](http://stackoverflow.com/tour)と[How to Ask](http://stackoverflow.com/questions/how-to-ask)を確認してください。 – TigerhawkT3

+0

だから、どこから始めますか?いくつかのコードを書いてもうまくいかない場合は、動作していないコードを投稿してください。 – barny

答えて

0
list1 = [100,200,300,400,400] 
list2 = [90,400,410,500,600] 
list3 = [600,380,110,800,900] 
complist = [j for i in zip(list2, list3) for j in i] 
myrange=40 
for x in list1: 
    for y in complist: 
     if x-myrange <= y <= x+myrange: 
      print('list1={}: complist={} is within range {}'.format(x, y, myrange)) 

私はあなたがlist2list3から比較したいすべての値を含む新しいリストを作成しました。私が使用している印刷コードはPython3のための一般的なものだと思うので、これを適応させなければならないかもしれません。

+0

Downvoted ...受け入れられ、取り消されました...少なくともいくつかのコメントを残してください。 – nostradamus

+0

ああ、私の悪い、ちょうどあなたのソリューションをテストし、それは正常に動作します! ありがとう!:-) – Jobias

関連する問題