Коли у вас є багато результатів функції, і ви не хочете називати її кілька разів, я думаю, що найяснішим способом вибору результатів буде:
results = fct()
a,b = [results[i] for i in list_of_index]
Як мінімальний робочий приклад, також демонструючи, що функція викликається лише один раз:
def fct(a):
b=a*2
c=a+2
d=a+b
e=b*2
f=a*a
print("fct called")
return[a,b,c,d,e,f]
results=fct(3)
> fct called
x,y = [results[i] for i in [1,4]]
А значення такі, як очікувалося:
results
> [3,6,5,9,12,9]
x
> 6
y
> 12
Для зручності також можна використовувати індекси списку Python:
x,y = [results[i] for i in [0,-2]]
Повертає: a = 3 і b = 12
~