Comment tester simultanément l'égalité de plusieurs variables par rapport à une valeur unique en Python
Lors de la comparaison de plusieurs variables à un entier et de la génération d'un triple chaîne de lettres en sortie, vous pourriez rencontrer des difficultés pour traduire ce concept en Python. Examinons le problème et trouvons la solution la plus efficace.
Considérez l'extrait de code suivant :
x = 0 y = 1 z = 3 mylist = [] if x or y or z == 0: mylist.append("c") if x or y or z == 1: mylist.append("d") if x or y or z == 2: mylist.append("e") if x or y or z == 3: mylist.append("f")
Le résultat attendu de ce code devrait être :
["c", "d", "f"]
Cependant, en raison de la nature des expressions booléennes, Python évalue chaque côté de l'opérateur or séparément. Par conséquent, ce code ne produira pas le résultat souhaité.
Pour résoudre ce problème, vous pouvez utiliser une approche alternative, par exemple en testant chaque variable individuellement par rapport à la valeur spécifique :
if x == 1 or y == 1 or z == 1: mylist.append("d")
Alternativement , vous pouvez utiliser un test de confinement sur un tuple ou un ensemble :
if 1 in (x, y, z): mylist.append("d") # Or even more efficiently if 1 in {x, y, z}: mylist.append("d")
Les ensembles offrent des tests d'adhésion à coût constant, ce qui en fait un choix optimal pour cela. scénario.
Il est crucial de se rappeler que les expressions booléennes suivent une hiérarchie d'opérations, avec des opérateurs comme ou ayant une priorité inférieure aux opérateurs de comparaison comme ==. Comprendre ces règles de priorité vous aidera à écrire un code plus efficace et plus précis.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!