他の質問が シーケンス および モジュール のより広いカテゴリに取り組んでいる間、私はこの非常に具体的な質問をします:
"辞書にはどの命名規則を使用しますか?その理由は?"
私が検討しているいくつかの命名規則のサンプル:
# '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
選択した回答の理由:コードレビューアは、マップのキーと値、およびそれがマップなしのマップであるという事実をすばやく簡単に把握できます。他の場所を探しています。
私はあなたが提案したような名前を付けたようには見えません(つまり、一方向を維持します)。ハッシュの「固有名詞」を見つけることができれば、はるかに明確に思えます。 「person_details」、「file_sizes」、「album_tracks」などの場合があります(ただし、最後の2つにはkey_valueの名前があるようですが、最初の名前は少し少なくなっています)。まれに、マップであることが重要な場合はkey_value_map
またはvalue_key_map
になります。
私はそのための命名スキームを想定することは決してありません。時には値があなたが求めているものであり、時にはキーです。私の好みは「自然な名前」です。
key_to_value
、 例えば surname_to_salary
は、コード内に密接に相互に関連するマップがある場合に役立つことがあります:aからb、bからa、cからbなど。
Dictの値にちなんでdictに名前を付け、キーについての言及をすべて削除するのは理にかなっていると思います。結局のところ、key
に適切な名前を付けたと仮定すると、values[key]
のような状況で、キーが何であるかを完全に明確にするdictを使用することになります。
私は通常<something> map
を使用します。これは通常、文字列から関数へ、数値からクラスへなどのマップであるためです。名前のないdictは通常、より大きな構造になるので、心配する必要はありません。
values_by_key
value_key_map
ほど混乱しません:値の名前とキーの名前を混同することはできません私たちのプロジェクトでは、次の規則を採用しました。
key_to_value_map
地図の場合aname_dict
より大きくより複雑な構造の場合。これまでの多くの回答(選択した回答を含む)と対比して、次のように述べます。
dict
やmap
のような型参照を変数名に追加することは避けています。それは私にはハンガリアン記法のように感じすぎて、非常に反Pythonicに感じます。
私が何を使用するかという質問に答えるには:
values
、values_by_key
、またはvalues_for_key
のいずれか最も自然に読み取れる形式の名前を使用します。