web-dev-qa-db-ja.com

Python辞書/マップ/ハッシュの命名規則

他の質問が シーケンス および モジュール のより広いカテゴリに取り組んでいる間、私はこの非常に具体的な質問をします:

"辞書にはどの命名規則を使用しますか?その理由は?"

私が検討しているいくつかの命名規則のサンプル:

# '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}

「なぜ」と「私の仕事が教えてくれるから」とわざわざ答えないでください。あまり役に立ちません。選択を推進する理由はより重要です。読みやすさ以外に、辞書の命名規則に関する他の良い考慮事項はありますか?

編集:

選択された回答:value_key_map

選択した回答の理由:コードレビューアは、マップのキーと値、およびそれがマップなしのマップであるという事実をすばやく簡単に把握できます。他の場所を探しています。

41
pokstad

私はあなたが提案したような名前を付けたようには見えません(つまり、一方向を維持します)。ハッシュの「固有名詞」を見つけることができれば、はるかに明確に思えます。 「person_details」、「file_sizes」、「album_tracks」などの場合があります(ただし、最後の2つにはkey_valueの名前があるようですが、最初の名前は少し少なくなっています)。まれに、マップであることが重要な場合はkey_value_mapまたはvalue_key_mapになります。

私はそのための命名スキームを想定することは決してありません。時には値があなたが求めているものであり、時にはキーです。私の好みは「自然な名前」です。

7
viraptor

key_to_value、 例えば surname_to_salaryは、コード内に密接に相互に関連するマップがある場合に役立つことがあります:aからb、bからa、cからbなど。

21
DSblizzard

Dictの値にちなんでdictに名前を付け、キーについての言及をすべて削除するのは理にかなっていると思います。結局のところ、keyに適切な名前を付けたと仮定すると、values[key]のような状況で、キーが何であるかを完全に明確にするdictを使用することになります。

4
unutbu

私は通常<something> mapを使用します。これは通常、文字列から関数へ、数値からクラスへなどのマップであるためです。名前のないdictは通常、より大きな構造になるので、心配する必要はありません。

values_by_key

  1. value_key_mapほど混乱しません:値の名前とキーの名前を混同することはできません
  2. タイプに直接名前を付けることはありません-pythonスタイルの名前付け
2
Sklavit

私たちのプロジェクトでは、次の規則を採用しました。

  • key_to_value_map地図の場合
  • aname_dictより大きくより複雑な構造の場合。
0
L. G.

これまでの多くの回答(選択した回答を含む)と対比して、次のように述べます。

dictmapのような型参照を変数名に追加することは避けています。それは私にはハンガリアン記法のように感じすぎて、非常に反Pythonicに感じます。

私が何を使用するかという質問に答えるには:

valuesvalues_by_key、またはvalues_for_keyのいずれか最も自然に読み取れる形式の名前を使用します。

0
Terrabits