Соглашения об именах Python для словарей/карт/хэшей
В то время как другие вопросы затрагивают более широкую категорию последовательностей и modules, я прошу об этом конкретный вопрос:
"Какое соглашение об именах вы используете для словарей и почему?"
Некоторые примеры соглашений об именах, которые я рассматривал:
# 'value' is the data type stored in the map, while 'key' is the type of key
value_for_key={key1:value1, key2,value2}
value_key={key1:value1, key2,value2}
v_value_k_key={key1:value1, key2,value2}
Не беспокойтесь, чтобы ответить "почему" на "потому что моя работа говорит мне", не очень полезно. Причиной выбора является более важная причина. Есть ли другие хорошие соображения для соглашения об именах в словаре, кроме чтения?
EDIT:
Выбранный ответ: value_key_map
Причина выбора ответа: Позволяет обозревателю кода быстро и легко определить ключ и значение для карты и тот факт, что это карта, не глядя нигде.
Ответы
Ответ 1
Я никогда не называю их чем-то вроде того, что вы предлагали (т.е. в одном направлении). Мне кажется, что это гораздо более ясно, когда я могу найти "собственное имя" для хэша. Это могут быть "person_details" или "file_sizes" или "album_tracks" и т.д. (Хотя последние 2, похоже, имеют имена key_value, сначала немного меньше). В редких случаях это будет key_value_map
, или value_key_map
, если важно, чтобы это была карта.
Я бы никогда не принял для этого никакой схемы именования. Иногда значения - это то, что вам нужно, иногда клавиши. Мое предпочтение - "естественное имя".
Ответ 2
key_to_value
, например surname_to_salary
может быть полезна, когда в коде есть тесно взаимосвязанные карты: a - b, b - a, c - b и т.д.
Ответ 3
Я думаю, что имеет смысл называть dict после значений в dict и бросать любые упоминания о ключе. В конце концов, вы собираетесь использовать dict в таких ситуациях, как values[key]
, что делает его совершенно понятным, что такое ключи, если вы хорошо назвали key
.
Ответ 4
Я обычно использую <something> map
, поскольку обычно это карта, такая как строки для функций или числа для классов, или еще что-то еще. Без названия прозвища обычно заканчиваются в более крупной структуре, поэтому я не беспокоюсь о них.
Ответ 5
В наших проектах мы приняли следующее соглашение:
-
key_to_value_map
, когда это карта
-
aname_dict
для более сложной структуры.
Ответ 6
values_by_key
1. это не так запутанно, как value_key_map
: нельзя путать, что такое имя значения и что такое имя ключа
2. он не называет тип напрямую - именование в стиле Python