In Python Was gibt es noch andere Möglichkeiten, um zu schreiben, wenn x == 1 oder x == 5 oder x == 10 …?

Ich habe oft am Ende Code schreiben wie

if x == 1 or x == 5 or x == 10 or x == 22 : pass 

In englischer Sprache scheint es überflüssig zu sein, x zu wiederholen, gibt es einen einfacheren oder kürzeren Weg, um eine if-Anweisung so zu schreiben?

Vielleicht Überprüfung der Existenz von x 's Wert in einem Tupel ( 1, 5, 10, 22, ) oder etwas?

3 Solutions collect form web for “In Python Was gibt es noch andere Möglichkeiten, um zu schreiben, wenn x == 1 oder x == 5 oder x == 10 …?”

Ja, Sie haben Recht – entweder in einem Tupel oder (wenn diese Prüfung wiederholt gemacht wird) in einem Satz.

Also mach auch mal

 if x in (1, 5, 10, 22): pass 

Oder wenn du diesen Check oft machst und die Anzahl der Werte groß genug ist,

 myset = set((1, 5, 10, 22)) [...] if x in myset: pass 

Das myset ist umso nützlicher, je mehr Werte Sie überprüfen möchten. 4 Werte sind ziemlich wenige, also kannst du es einfach halten 400 Werte und du solltest das Set …

Ein weiterer Aspekt, wie von Marcin hervorgehoben, ist die notwendige Hashing für die Suche in der Menge, die teurer sein kann als die Suche nach einer Liste oder Tupel für den gewünschten Wert.

Sie können mit einer Sammlung verwenden:

 if x in [1, 5, 10, 22]: # etc... if x in {1, 5, 10, 22}: # New syntax for creating sets # etc... 

Beachten Sie, dass bei jeder Ausführung der Zeile eine neue Liste erstellt wird. Wenn Effizienz ein Anliegen ist, erstellen Sie die Sammlung nur einmal und verwenden Sie sie wieder.

Wenn Sie gute Leistung benötigen und den gleichen Vergleich mehrmals wiederholen möchten, verwenden Sie einen Satz:

 s = frozenset([1, 5, 10, 22]) # at the beginning if x in s: # in your code pass 
  • Wie bekomme ich nur ganzzahlig mit python, wenn sonst bedingt
  • Wenn-else, wenn Anweisung nicht richtig funktioniert
  • Else-Anweisung, die sogar die IF-Anweisung ausführt, ist TRUE
  • Wie man diesen Block von Python-Code kurz und effizient macht
  • "Sonst" als schädlich in Python?
  • Python-Syntax für "wenn a oder b oder c aber nicht alle von ihnen"
  • Rock Paper Scissors - Python 3 - Anfänger
  • Wie kann ich Inline schreiben?
  • Pythonische Möglichkeit, eine Zuordnung in einer if-Anweisung umzuschreiben
  • Else Syntax Error Python
  • Python booleans - if x :, vs if x == True, vs if x ist True
  • Python ist die beste Programmiersprache der Welt.