Сопоставьте значение, если оно является подмножеством набора ключей.Python

Программы на Python
Anonymous
Сопоставьте значение, если оно является подмножеством набора ключей.

Сообщение Anonymous »

если у меня есть следующий код:

Код: Выделить всё

if value == key1:
return value1
elif value == key2:
return value2
...
Очевидно, я могу упростить это с помощью dict

Код: Выделить всё

d = { key1: value1, key2: value2, ...}
return d[value]
Сейчас у меня есть нечто подобное с наборами:

Код: Выделить всё

if value in { key1, key2, key3...}:
return value1
elif value in { key4, key5, key6...}:
return value2
...
Мне интересно, есть ли способ упростить это, или цепочка if-elif лучше? Я мог бы сделать что-нибудь с преобразованием замороженных наборов в значения и найти первое значение, которому принадлежит значение, используя next и выражение-генератор, но это становится слишком «умным».
Обратите внимание, что я не обязательно ищу однострочник, просто если для этого есть лучший шаблон.

Подробнее здесь: https://stackoverflow.com/questions/798 ... -a-key-set

Вернуться в «Python»