サブセット内の最小値を見つけるために、辞書のサブセットを反復処理したいと思います。ジェネレータ式を使用して値を取得できます。
>>> S = {'a', 'c'}
>>> D = {'a': 2, 'b': 0, 'c': 1, 'd': 3}
>>> min(D[k] for k in S)
1
関連するキーを取得するには、これが可能だと思います:
>>> subset_min = min(D[k] for k in S)
>>> [k for k, v in D.iteritems() if v == subset_min]
['c']
しかし、辞書を再度検索する必要がない方法は確かにありますか? ここmin(D, key=D.get)
で説明したようなものを望んでいましたが、この場合の適用方法がわかりません。