Sostituzioni per la dichiarazione switch in Python?

Voglio scrivere una funzione in Python che restituisca diversi valori fissi in base al valore di un indice di input.

In altre lingue userei una dichiarazione switch o case, ma Python non sembra avere una dichiarazione switch. Quali sono le soluzioni Python raccomandate in questo scenario?

Soluzione

Potresti usare un dizionario:

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

Mi è sempre piaciuto farlo in questo modo

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

Da qui

Commentari (15)

Se stai davvero solo restituendo un valore predeterminato e fisso, potresti creare un dizionario con tutti i possibili indici di input come chiavi, insieme ai loro valori corrispondenti. Inoltre, potresti non volere davvero una funzione per fare questo - a meno che tu non stia calcolando il valore di ritorno in qualche modo.

Oh, e se hai voglia di fare qualcosa tipo switch, vedi qui.

Commentari (0)