Pārslēgšanas paziņojuma aizstājēji Python?

Es vēlos uzrakstīt Python funkciju, kas atgriež dažādas fiksētas vērtības, pamatojoties uz ievades indeksa vērtību.

Citās valodās es varētu izmantot switch vai case izteikumu, bet šķiet, ka Python nav switch izteikuma. Kādi ir ieteicamie Python risinājumi šajā scenārijā?

Risinājums

Jūs varētu izmantot vārdnīcu:

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

Man vienmēr ir paticis darīt to šādā veidā

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

No šejienes

Komentāri (15)

Ja patiešām vēlaties tikai atgriezt iepriekš noteiktu, fiksētu vērtību, varat izveidot vārdnīcu, kurā kā atslēgas norādīti visi iespējamie ievades indeksi un to atbilstošās vērtības. Turklāt, iespējams, jūs patiešām nevēlaties, lai to darītu funkcija, ja vien jūs kaut kādā veidā neaprēķināt atgrieztās vērtības.

Un, ja jums ir vēlme darīt kaut ko līdzīgu pārslēdzējam, skatiet šeit.

Komentāri (0)