Maison >développement back-end >Tutoriel Python >Comment tester efficacement l'égalité de plusieurs variables par rapport à une valeur unique en Python ?

Comment tester efficacement l'égalité de plusieurs variables par rapport à une valeur unique en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-01 04:28:11195parcourir

How to Efficiently Test Multiple Variables for Equality Against a Single Value in Python?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn