Ersetzungen für switch-Anweisung in Python?

Ich möchte eine Funktion in Python schreiben, die je nach dem Wert eines Eingabeindexes verschiedene feste Werte zurückgibt.

In anderen Sprachen würde ich eine switch- oder case-Anweisung verwenden, aber Python scheint keine switch-Anweisung zu haben. Was sind die empfohlenen Python-Lösungen für dieses Szenario?

Lösung

Sie könnten ein Wörterbuch benutzen:

def f(x):
    return {
        'a': 1,
        'b': 2,
    }[x]
Kommentare (18)

Ich habe es immer gerne so gemacht

result = {
  'a': lambda x: x * 5,
  'b': lambda x: x + 7,
  'c': lambda x: x - 2
}[value](x)

Von hier

Kommentare (15)

Wenn Sie wirklich nur einen vorgegebenen, festen Wert zurückgeben wollen, könnten Sie ein Wörterbuch mit allen möglichen Eingabeindizes als Schlüssel und den entsprechenden Werten erstellen. Außerdem möchten Sie vielleicht nicht wirklich, dass eine Funktion dies tut - es sei denn, Sie berechnen den Rückgabewert irgendwie.

Oh, und wenn Sie Lust haben, etwas Switch-ähnliches zu machen, siehe hier.

Kommentare (0)