Мне интересно, есть ли способ заполнить словарь таким образом, чтобы у вас было сопоставление нескольких ключей с тем же значением, которое было бы менее подробным, чем скажем:
d = {1:'yes', 2:'yes', 3:'yes', 4:'no'}
Я думаю что-то вроде:
d = {*(1,2,3):'yes', 4:'no'}
который, очевидно, является синтаксической ошибкой.
Есть ли простой способ сделать это без слишком много запутывания? (Я не играю в гольф кода, но мне также не нужно писать по-разному одну и ту же вещь снова и снова. Однако любые ответы, связанные с кодом-гольф, будут оценены, так как Code-Golf является awesome =]).
Edit
Я, вероятно, выбрал плохой пример. Это то, что я пытаюсь сделать:
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
Я знаю, что это глупо и совершенно ненужно, но моя цель - сделать это выражение на одной строке. Это, очевидно, не должно ограничивать ответы и писать код только потому, что он подходит по одной строке, это глупо. Но я пишу константу постоянного уровня модуля, что было бы неплохо, если бы это был один лайнер.