Perjungimo sakinio pakaitalai Pythone?

Noriu parašyti "Python" funkciją, kuri grąžina skirtingas fiksuotas vertes, priklausomai nuo įvesties indekso vertės.

Kitose kalbose aš naudočiau perjungimo arba kase komandą, bet Python neturi perjungimo komandos. Kokie yra rekomenduojami Python sprendimai šiuo atveju?

Sprendimas

Galite naudotis žodynu:

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

Man visada patiko tai daryti tokiu būdu

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

Iš čia

Komentarai (15)

Jei iš tikrųjų norite grąžinti tik iš anksto nustatytą fiksuotą vertę, galite sukurti žodyną, kurio raktai būtų visi galimi įvesties indeksai ir atitinkamos vertės. Be to, galbūt tikrai nenorėtumėte, kad tai darytų funkcija, nebent kaip nors apskaičiuotumėte grąžinamąją vertę.

O jei norite padaryti kažką panašaus į jungiklį, žiūrėkite čia.

Komentarai (0)