Erstatninger for switch statement i Python?

Jeg vil skrive en funksjon i Python som returnerer forskjellige faste verdier basert på verdien av en inngangsindeks.

I andre språk ville jeg brukt en switch eller case-setning, men Python ser ikke ut til å ha en switch-setning. Hva er de anbefalte Python-løsningene i dette scenariet?

Løsning

Du kan bruke en ordbok:

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

Jeg'har alltid likt å gjøre det på denne måten

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

Herfra

Kommentarer (15)

Hvis du egentlig bare returnerer en forhåndsbestemt, fast verdi, kan du opprette en ordbok med alle mulige inngangsindekser som nøkler, sammen med deres tilsvarende verdier. Dessuten vil du kanskje ikke egentlig ha en funksjon for å gjøre dette - med mindre du beregner returverdien på en eller annen måte.

Oh, og hvis du har lyst til å gjøre noe bryter-lignende, se her.

Kommentarer (0)