Rozpakowywanie argumentów: tylko * argumenty nazwane mogą następować po * wyrażeniu

Poniższe działa pięknie w Pythonie:

def f(x,y,z): return [x,y,z]

a=[1,2]

f(3,*a)

Elementya rozpakuj się tak, jakbyś to nazwałf(3,1,2) i wraca[3,1,2]. Wspaniale!

Ale nie mogę rozpakować elementówa wpierwszy dwa argumenty:

f(*a,3)

Zamiast nazywać to jakf(1,2,3), Dostaję „SyntaxError: tylko nazwane argumenty mogą podążać za * wyrażeniem”.

Zastanawiam się tylko, dlaczego tak musi być i jeśli jest jakaś sprytna sztuczka, której nie zdaję sobie sprawy z rozpakowywania tablic na dowolne części list argumentów bez uciekania się do zmiennych tymczasowych.

questionAnswers(6)

yourAnswerToTheQuestion