В Питоне один из возможных синтаксисов инициализации словаря такой:

b=dict(key1='value1',key2='value2')

После этого создаётся такой словарь: {'key1':'value1', 'key2':'value2'}

Такой способ инициализации для меня выглядел непонятно. Смотрите, ключи не являются строками, но преобразуются в строки. Написать же так:

b=dict('key1'='value1','key2'='value2')

нельзя. Всё это выглядело очень странно. Я понимаю, когда для выполнения определённого действия вводится особый синтаксис, но синтаксис должен быть как-то об'яснён и иметь смысл. Если для инициализации словарей введён специально такой синтаксис, то ключи должны быть любого типа. В данном же случае... а какой тип у ключей в первом примере? Это не строки (хотя потом они превращаются в строки). Это выглядит как имена переменных, но переменные не создаются после выполнения этой строки.

Я открыл Лутца. Прямым текстом ответ написан там не был, но там была важная подсказка: там было написано, что тип ключей ограничен при таком синтаксисе строковым типом, а сама инициализация это инициализация по "ключевым аргументом".

И тогда я понял, как это работает. Поскольку в Питоне нет строгих ограничений на количество позиционных и именованных аргументов, то я могу посылать их сколько угодно, что я и делаю, передавая эти аргументы в том количестве, в каком надо, по одному на каждый элемент словаря. Поскольку аргументы именованные (keyword argument), то при вызове функции автоматически создаётся словарь kwargs, который в точности идентичен тому, который мы хотим получить при инициализации.

То есть это оказался не специальный синтаксис, а общий.