2016-11-15 1 views
-2

Je veux comparer toutes les listes d'éléments et vérifier si elles sont + ou - 40 (ou identiques) dans la valeur des autres éléments.Python éléments de listes multiples comparer

Par exemple: Valeur 400 list1 à comparer avec tous les éléments liste2 & liste3 si l'un de leurs éléments est entre 360 ​​et 440.

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

output: 400,410,380 

J'ai essayé une double boucle mais son seulement vérifier un élément dans la liste1:

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

Mais il n'imprime jamais quelque chose.

J'espère que mon explication et l'exemple est assez bon, si non s'il vous plaît laissez-moi savoir ce que vous manquez!

Merci d'avance!

+2

Il semblerait que vous vouliez que nous écrivions du code pour vous. Bien que de nombreux utilisateurs soient prêts à produire du code pour un codeur en détresse, ils ne font généralement que contribuer lorsque l'affiche a déjà tenté de résoudre le problème par eux-mêmes. Une bonne façon de démontrer cet effort est d'inclure le code que vous avez écrit jusqu'ici, l'exemple d'entrée (s'il y en a), la sortie attendue et la sortie que vous obtenez réellement (sortie, retraçages, etc.). Plus vous fournissez de détails, plus vous aurez de chances de recevoir des réponses. Consultez la [FAQ] (http://stackoverflow.com/tour) et [Comment demander] (http://stackoverflow.com/questions/how-to-ask). – TigerhawkT3

+0

Alors, où allez-vous commencer? Lorsque vous avez écrit du code et que cela ne fonctionne pas, publiez votre code non fonctionnel et nous pouvons vous aider. – barny

Répondre

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)) 

J'ai créé une nouvelle liste contenant toutes les valeurs que vous souhaitez comparer et de list2list3. Je suppose que le code d'impression que j'ai utilisé est générique pour Python3, donc vous devrez peut-être l'adapter.

+0

Downvoted ... Accepté, puis révoqué ... S'il vous plaît laissez des commentaires au moins. – nostradamus

+0

Oh mon diable, juste testé vos solutions et ça fonctionne bien! Merci beaucoup! :-) – Jobias