対応する値が最小値を上回り、特定のリストにある辞書内のすべてのキーを取得する必要があります。何かのようなもの:
result = [k for k in my_dict if my_dict[k] > min_value and k in allowed_keys]
ただし、許可されるキーに制限がない場合もあります。それを行うのに最もPython的なのは、allowed_keysをNoneに設定することです。しかし、これは私に醜いコードを残します:
if allowed_keys is None:
result = [k for k in my_dict if my_dict[k] > min_value]
else:
result = [k for k in my_dict if my_dict[k] > min_value and k in allowed_keys]
もっと賢明でパイソン的な解決策があるに違いないと思います。ラムダ関数を使用することを考えましたが、よくわかりません。何か案は?