この解決策を解決するには 1001 通りの方法があることを認識しています。最も Pythonic なアプローチと思われる方法を理解するようコミュニティに求めています。
次の形式の辞書のリストがあるとします。
colours = [{"color": "green", "owner": "Mark"},
{"color": "blue", "owner": "Luke"},
{"color": "red", "owner": "John"}]
リストは辞書の辞書でなければならないという明らかな事実を見落として、辞書のキーのユーザー入力を指定して、リストから単一の辞書を取得したいと考えていますcolor
が、色が一致しない場合はデフォルト値を使用します (できますこの例では「緑」と言います)。
そのため、私は関数を探しています:
def get_with_default(colour, colours, default):
色のリストが返されると、次のようになります。
>>> get_with_default("blue", colours, "green") # Valid dictionary
{"color": "blue", "owner": "Luke"}
>>> get_with_default("black", colours, "green") # Colour doesn't exist
{"color": "green", "owner": "Mark"}
更新(Martijnに感謝)、デフォルト値はハードコードされ、リストにあることがわかっていますが、その辞書の他のキー/値のペアは不明/動的です(したがって、「緑」が辞書のキーであることはわかっています、しかし、この単純化されたケースでは、誰が緑を「所有」しているのかわかりません