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

В 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 впервый два аргумента:

f(*a,3)

Вместо того, чтобы называть это какf(1,2,3), Я получил "Синтаксическая ошибка: только именованные аргументы могут следовать за * выражением ".I '

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

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

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