Синтаксис создания словаря Python

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

d = {1:'yes', 2:'yes', 3:'yes', 4:'no'}

Я думаю что-то в этом роде of:

d = {*(1,2,3):'yes', 4:'no'}

, что, очевидно, является синтаксической ошибкой.

Есть ли достаточно простой способ сделать это без СЛИШКОМ обфускации? (Я не играю в код-гольф, но мне также не нужно писать одно и то же снова и снова. Тем не менее, любые ответы, связанные с кодом-гольфом, также будут оценены, поскольку code-golf потрясающий =])

Правка :

Я, наверное, выбрал плохой пример. Это то, что я м пытаюсь сделать:

d = {*('READY', 95): 'GPLR2_95', 'CHARGING': 'GPLR3_99', 'PROTECTION': 'GPLR3_100', 'CONNECTED': 'GPLR3_101', 'ERROR':'GPLR3_102'}

Я ожидаю, что это расширится до:

d = {'READY':'GPLR2_95', 95: 'GPLR2_95', ...}

Edit-> Edit :

Я знаю, что это глупо и совершенно ненужно, но моя цель - сделать это объявление на единственная строка. Это, очевидно, не должно ограничивать любые ответы, и писать код только потому, что он умещается в одной строке, глупо. Но я пишу постоянный dict уровня модуля, который было бы неплохо, если бы он был однострочным.

48
задан Falmarri 31 May 2011 в 18:33
поделиться