В 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), я получаю "SyntaxError: только аргументы named могут следовать за выражением".
Мне просто интересно, почему это должно быть так, и если есть какой-нибудь умный трюк, который я, возможно, не знал о распаковке массивов в произвольные части списков аргументов, не прибегая к временным переменным.