func(**словарь) передает все пары ключ / значение в словаре как отдельные ключевые аргументы. Неважно, в каком порядке в
dct указаны элементы: функция распределит их поименно. Такой тип сопоставления аргументов называется «ключевое». foo(first = 1, second = 'Текст') # как интерпретатор видит аргументы
Существует также позиционное сопоставление аргументов
foo(arg1, arg2), где аргументы сопоставляются по их положению. Чтобы оно заработало со словарем dct, придется передать их так:foo(dct['first'], dct['second'])