J'ai une liste que je suis en boucle avec une boucle "pour" et que vous utilisez chaque valeur dans la liste via une instruction IF. Mon problème est que j'essaie que je n'ai que le programme ne fait que faire quelque chose si toutes les valeurs de la liste passent la déclaration IF et si l'on ne passe pas, je souhaite qu'il se déplace vers la valeur suivante de la liste. Actuellement, il renvoie une valeur si un seul élément de la liste transmet la déclaration IF. Des idées pour me faire pointer dans la bonne direction? P>
4 Réponses :
Python vous donne des charges d'options pour faire face à une telle situation. Si vous avez l'exemple de code, nous pourrions réduire cela pour vous.
Une option que vous pouvez regarder est le Vous pouvez également vérifier la longueur de la liste filtrée: p> Tout code> opérateur: p> >>> def test(input):
... for i in input:
... if not i > 2:
... return False
... do_something_with_i(i)
... return True
Vous devez faire boucler tout votre liste et vérifier la condition avant d'essayer de faire autre chose avec les données, de sorte que vous avez besoin de deux boucles (ou utilisez-les dans une boucle intégrée pour vous, comme tous ()). De ce codepad sans rien de trop chic,
0 commentaires
Peut-être que vous pourriez essayer avec un pour ... autre code> instruction.
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 faire attention si vous supprimez des éléments de votre liste pendant que vous essayez de le déranger.
Si vous ne supprimez pas, alors cela aide-t-il: P>
>>> 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'
Exemple de code nous aide toujours à vous aider à mieux vous aider.
Trier CODE> et comparer contre un SRC connu, Springs à l'esprit, mais comme les autres l'ont dit, postez un code de manière à ce que votre liste ressemble à votre liste!Vous n'édictez pas ce que votre objectif est avec la fonction; par exemple. Si la fonction doit faire quelque chose avec l'état intermédiaire
Jetez un coup d'œil à cela Stackoverflow.com/questions/6009589/...
-1 ... Postage d'une vague de randonnée sur le code mais ne montrant pas le code et ne pas accrocher de répondre aux questions inévitables.
Je m'excuse sur le retard. La raison pour laquelle je n'ai pas publié aucun code est que j'essaie d'apprendre ce genre de choses (pour le plaisir, et je peux donc envoyer moins de choses à notre équipe de développement au travail). J'essayais d'être dirigé dans la bonne direction pour cela, je pouvais toujours essayer de comprendre certains de moi-même.