Распаковка аргументов: только именованные аргументы могут следовать за * выражением

В Python прекрасно работает следующее:

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

a=[1,2]

f(3,*a)

Элементыa распаковать, как если бы вы назвали это какf(3,1,2) и он возвращается[3,1,2], Замечательно!

Но я не могу распаковать элементыa вfirst два аргумента:

f(*a,3)

Вместо того, чтобы называть это какf(1,2,3), Я получаю & quot; SyntaxError: только именованные аргументы могут следовать за * выражением & quot ;.

Мне просто интересно, почему так должно быть, и если есть какая-нибудь хитрая уловка, о которой я мог бы не знать для распаковки массивов в произвольные части списков аргументов без обращения к временным переменным.

Ответы на вопрос(6)

Ваш ответ на вопрос