J'ai une liste que je suis en boucle avec une boucle "for" et j'exécute chaque valeur de la liste via une instruction if. Mon problème est que j'essaye de faire que le programme fasse quelque chose si toutes les valeurs dans la liste passent l'instruction if et si l'une ne passe pas, je veux qu'elle passe à la valeur suivante dans la liste. Actuellement, il renvoie une valeur si un seul élément de la liste transmet l'instruction if. Des idées pour me faire pointer dans la bonne direction? Python vous donne beaucoup d'options pour gérer une telle situation.itérer dans une liste avec une instruction if
Répondre
Si vous avez un exemple de code, nous pourrions le réduire pour vous.
Une option que vous pouvez regarder est l'opérateur all
:
>>> all([1,2,3,4])
True
>>> all([1,2,3,False])
False
Vous pouvez également vérifier la longueur de la liste filtrée:
>>> input = [1,2,3,4]
>>> tested = [i for i in input if i > 2]
>>> len(tested) == len(input)
False
Si vous utilisez un for
construction vous pouvez quittez la boucle tôt si vous tombez sur un test négatif:
>>> def test(input):
... for i in input:
... if not i > 2:
... return False
... do_something_with_i(i)
... return True
La fonction test
ci-dessus renvoie False sur la première valeur 2 ou inférieure, par exemple, alors qu'elle renvoie Vrai uniquement si toutes les valeurs étaient supérieures à 2.
Vous devez parcourir toute la liste et vérifier condition avant d'essayer de faire quoi que ce soit d'autre avec les données, donc vous avez besoin de deux boucles (ou utilisez une partie intégrée qui fait la boucle pour vous, comme tout()). De cette CodePad avec rien d'extraordinaire, http://codepad.org/pKfT4Gdc
def my_condition(v):
return v % 2 == 0
def do_if_pass(l):
list_okay = True
for v in l:
if not my_condition(v):
list_okay = False
if list_okay:
print 'everything in list is okay, including',
for v in l:
print v,
print
else:
print 'not okay'
do_if_pass([1,2,3])
do_if_pass([2,4,6])
Peut-être que vous pourriez essayer avec une déclaration for ... else
.
for item in my_list:
if not my_condition(item):
break # one item didn't complete the condition, get out of this loop
else:
# here we are if all items respect the condition
do_the_stuff(my_list)
Vous devez toujours être prudent si vous supprimez des éléments de votre liste alors que vous essayez de le parcourir.
Si vous ne supprimez pas fait alors cette aide:
>>> yourlist=list("abcdefg")
>>> value_position_pairs=zip(yourlist,range(len(yourlist)))
>>> value_position_pairs
[('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4), ('f', 5), ('g', 6)]
>>> filterfunc=lambda x:x[0] in "adg"
>>> value_position_pairs=filter(filterfunc,value_position_pairs)
>>> value_position_pairs
[('a', 0), ('d', 3), ('g', 6)]
>>> yourlist[6]
'g'
maintenant si value_position_pairs est vide, vous avez terminé. Sinon, vous pouvez augmenter i par un pour passer à la valeur suivante ou parcourir les valeurs échouées en utilisant leur position dans le tableau.
- 1. Une instruction If dans une instruction If
- 2. ASH if instruction dans une instruction if
- 3. avec une instruction if
- 4. Si une instruction if dans une instruction if
- 5. || , | , && dans une instruction IF
- 6. PHP: tableau avec une instruction if dans
- 7. Itérer dans une liste?
- 8. Python trier une liste de dictionnaires avec instruction if
- 9. booléen dans une instruction if
- 10. Itérer une variable dans une condition else if?
- 11. Exclure une instruction if?
- 12. itérer une liste avec ForEach
- 13. Comment utiliser 'contains' dans une instruction if?
- 14. Comment utiliser une instruction LIKE dans une instruction IF?
- 15. problème avec une instruction IF dans une fonction
- 16. changez deux valeurs avec une instruction if
- 17. PHP instruction if avec une requête MySQL
- 18. Animation Jquery avec une instruction if
- 19. python - pour avec une instruction if
- 20. contrôle SQL avec une instruction if
- 21. Instruction REPLACE avec une logique IF() intégrée?
- 22. Application d'une instruction php if à une autre instruction if?
- 23. Instruction "else if" dans la boucle for dans une instruction if/else if/else plus grande
- 24. Comment ajouter une instruction if dans SQL?
- 25. Deux conditions dans une instruction PHP 'if'
- 26. SAS: Baisse colonne dans une instruction if
- 27. requête comprenant une instruction IF
- 28. Perl une ligne instruction if
- 29. comment utiliser une variable en dehors d'une instruction if déjà déclarée dans une instruction if
- 30. en utilisant try catch avec une instruction if dans asp.net
Exemple de code nous aide toujours à mieux vous aider. –
Postez votre code. – GWW
'sort' et comparer avec un src connu, vient à l'esprit, mais comme les autres l'ont dit, postez du code pour que nous puissions voir à quoi ressemble votre liste! –