Comment tester plusieurs variables en fonction de la valeur?

Je suis en train de faire une fonction qui permettra de comparer plusieurs variables d'un entier et de sortie d'une chaîne de trois lettres. Je me demandais si il y avait un moyen de les traduire en Python. Donc, dire:

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

qui permettrait le retour d'une liste de

["c", "d", "f"]

Est quelque chose comme cela possible?

  • utilisation 1 en (n-uplet)
  • Lorsque vous souhaitez évaluer une liste de déclarations dans un tout manière, vous pouvez utiliser any/all fonctions. Par exemple: all([1, 2, 3, 4, False]) retournera False all([True, 1, 2, 3]) retournera True any([False, 0, 0, False]) retournera False any([False, 0, True, False]) retournera True
  • J'ai fait un résumé de message basé sur les réponses ici: medium.com/codervlogger/...
  • Cette question est très populaire en double objectif, mais je pense que c'est sous-optimale à cette fin. La plupart des gens essaient de faire quelque chose comme if x == 0 or 1:, ce qui est évidemment semblable à if x or y == 0:, mais pourrait être un peu déroutant pour les débutants néanmoins. Etant donné le volume de "Pourquoi n'est pas mon x == 0 or 1 de travail?" des questions, je préférerais utiliser les cette question comme nos canonique double cible de ces questions.
  • Prendre des précautions supplémentaires lors de la comparaison à "falsey" des valeurs comme 0, 0.0 ou False. Vous pouvez facilement écrire du mauvais code qui donne la "bonne" réponse.
InformationsquelleAutor user1877442 | 2013-02-27