Имеет ли смысл оптимизировать функцию?
Читал в определенных местах, что рекурсия работает медленнее, чем обычный алгоритм. Столкнулся с такой ситуацией. Надо реализовать перебор для каждого значения в строгом порядке. Написал как есть не думая.
Как бы работает так как надо, но меня все-таки терзает рекурсия... Вот я и думаю стоит писать рекурсию для такого кода или пусть и так работает?
def get_option_number(number):
if number == 50:
return [25, 75]
else:
if number == 25:
return [50, 75]
else:
if number == 75:
return [50, 25]
else:
return [75, 50, 25]
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Непонятно, при чём здесь рекурсия. А если вас беспокоит вложенность if-ов, то можно применить словарь, чтобы использовать всего одну проверку, да и выглядит такой код короче:
{
25: [50, 75],
50: [25, 75],
75: [50, 25],
}.get(number, [75, 50, 25])
Автор решения: SergFSM
→ Ссылка
для python 3.10:
def get_option_number(number):
match number:
case 50: return [25, 75]
case 25: return [50, 75]
case 75: return [50, 25]
case _ : return [75, 50, 25]