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