Подтвердить что ты не робот

Соглашения об именах 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

Причина выбора ответа: Позволяет обозревателю кода быстро и легко определить ключ и значение для карты и тот факт, что это карта, не глядя нигде.

4b9b3361

Ответ 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