Искам да напиша функция в Python, която връща различни фиксирани стойности въз основа на стойността на входния индекс.
В други езици бих използвал оператор switch
или case
, но изглежда, че в Python няма оператор switch
. Какви са препоръчителните решения за Python в този случай?
Можете да използвате речник:
def f(x):
return {
'a': 1,
'b': 2,
}[x]
Винаги ми е харесвало да го правя по този начин
result = {
'a': lambda x: x * 5,
'b': lambda x: x + 7,
'c': lambda x: x - 2
}[value](x)
Ако наистина искате да върнете само предварително определена, фиксирана стойност, можете да създадете речник с всички възможни входни индекси като ключове, заедно със съответните им стойности. Също така, може би наистина не искате функция да прави това - освен ако не изчислявате по някакъв начин върнатата стойност.
Ако ви се иска да направите нещо подобно на превключвател, вижте тук.